2011-08-25 12 views
6

우선 내가 원하는 것은 적어도 나를 위해 꽤 복잡하지만 다른 한편으로는 흥미 진진한 소리가납니다.델파이 앱을위한 실시간 웹 기반 클라이언트. 어떻게?

나는 델파이로 작성된 소프트웨어를 가지고 있으며,이를 위해 실시간 웹 기반 클라이언트를 원한다.

요구 사항 : 클라이언트 측 순수 자바 스크립트

  • 빛나는 인터페이스에

    • (GWT, SmartGWT) 서버와 클라이언트 사이의
    • 비동기 연결. Ajax push, Long Polling, Comet, WebSocket? 서버 측

      • 내가 Overbyte에서 ICS를 사용할 수 있다고 생각 델파이 측면에서 확장 기능

  • 는 요청을 처리합니다. 나는 ICS 팩의 THttpAppSrv가 간단한 컨텐츠를 쉽게 제공 할 수 있지만 Websocket은 무엇인지, 또는 어떻게 그것으로 긴 폴링을 할 수 있는지 알고있다.

    GWT (클라이언트 측의 GWT, 클라이언트 측의 SmartGWT 및 델파이 측의 ICS)는 무엇이라고 생각합니까? 거기에 샘플 프로젝트가 있습니까? 아니면 다른 해결책이 있습니까?

    업데이트 유용한 의견을 주셔서 감사합니다. 저는 솔루션에 더 가깝다고 생각합니다. GWT가 맞춤 서버를 사용할 수 있다는 것을 아는 것은 좋은 일입니다. 그러나 Arnaud가 맞다고 생각합니다. GWT는 자체 Jetty 서버가 완벽한 솔루션이지만, 불행히도 나를위한 것이 아닙니다. :) 나는 GWT RPC와 통신 할 수있는 델파이로 작성된 서버가 필요하다고 생각한다.

    업데이트 나는의 브라우저에서 실행하는 클라이언트를 만드는 (당신이 작은 요구 사항을 변경하는 경우) 그러나 나는 더 나은 솔루션이 있다고 생각, 나에게 원래의 질문에 가장 적합한 보이는 아르노 뷰셰의 답변을 받아 2 델파이 응용 프로그램. 나는 아이디어를 공유하기 위해 여기에 약간의 논평을하고 있습니다. 마지막으로 node.js 서버를 사용하고 ZMQ의 도움으로 내 delphi 앱에 연결했습니다.

    +0

    GWT + GWT + RPC + Jetty (또는 Tomcat, JBoss, GlassFish, WebSphere ...)는 Delphi와 쉽게 통합 될 수 있습니다. 이러한 도구를 사용하여 애플리케이션의 웹 레이어를 생성 할 수있는 Java 개발자가 있고 동기식 또는 비동기식 인터페이스에 Delphi 비즈니스 레이어를 통합 할 수 있다면 두 가지 장점을 모두 활용할 수 있습니다. 거대한 추가 성능 향상을 위해 [memcached] (http://memcached.org/)와 같은 [Delphi] (http://code.google.com/p/delphimemcache/) 및 Java 클라이언트를 사용할 수있는 캐싱 솔루션을 고려하십시오. – mjn

    +0

    업데이트 : 관심이 있으시면 Delphi/Java 통신 라이브러리 용으로 작성한 문서의 일부로 완전한 GWT/Delphi 통합 예제를 빌드하고 완전한 Java 소스 코드로 게시 할 수 있습니다. – mjn

    +0

    @mjn Thx. 예, 저는 관심이 있습니다. 클라이언트 측에서 SmartGWT 위젯을 사용하고 델파이 측에서도 비동기 연결을 사용하면 간단한 예제가 크게 도움이 될 것입니다. – balazs

    답변

    3

    Delphi 측의 HTTP 서버에 대해서는 XP 이후 Microsoft에서 제공 한 kernel mode http.sys server을 사용하는 것이 좋습니다. ICS보다 빠릅니다.

    AJAX 부분은 Op4JS 또는 최대 ElevateDBBuilder입니다.

    이러한 솔루션과 함께 좋은 점은 오브젝트 파스칼 코드를 작성할 수 있으며이 코드가 JavaScript로 변환된다는 것입니다. 아직 끝나지는 않았지만, 석방을 위해 조금 기다릴만한 가치가 있습니다.

    물론 더 일반적인 AJAX 솔루션이 있습니다 (예 : IntraWeb 또는 ExtPascal). 둘 다 자체 웹 서버를 구현합니다.

    GWT에 관하여, AFAIK 그들은 자바 세계에 깊이 관련되어있는 자바 라이브러리입니다. Delphi에서 작동하지 않게 할 수 있습니다. GWT에 대한

    편집 :

    GWT는 전체 클라이언트 - 서버 프레임 워크입니다.

    GWT를 사용한다면 어느 시점에서든 애플리케이션을 완전히 다시 작성해야 할 것입니다. 또는 GWT의 가장 큰 관심을 프레임 워크로 놓치게됩니다. 그것은 당신의 선택입니다.

    JSON을 사용하여 예를 들어 JSON을 프레임 워크에서 사용하는 것처럼 좀 더 표준적인 방식을 사용하고 싶습니다.

    +0

    링크를 가져 주셔서 감사합니다. 위대한 도구입니다.하지만 오브젝트 파스칼 코드를 작성하지 않아도됩니다. 자바 스크립트로 번역하는 대신 websocket을 통해 통신하거나 클라이언트와 서버 측을 longpolling하는 것입니다. 실제로 GWT는 자바 코드를 자바 스크립트로 변환합니다. – balazs

    +0

    @balazs 그럼 전체 Java로 클라이언트 파트를 작성하고 싶습니까? 그러나 GWT는 자바 서블릿 기반의 RPC 메커니즘을 사용하여 서버 측 리소스에 대한 액세스를 제공합니다. 따라서 서버 부분을 자바로 작성해야합니다 (또는 델파이로 에뮬레이트합니다 - 그러나 열심히 소리를냅니다). 나는 GWT에 대해 더 깊은 언급을하기 위해 나의 대답을 편집했다. –

    +0

    GWT에 대한 몇 가지 설명 : * GWT는 "자체 HTTP 서버"를 제공하지 않거나 HTTP 서버가 Java 기반이어야합니다. * GWT는 JSON을 프로토콜로 사용할 수 있으므로 서버 측 Java 서블릿에 의존하지 않습니다. – mjn

    0

    Intraweb을 확인하셨습니까? 필자는 광범위하게 사용하지는 않았지만 델파이 웹 앱에서는 꽤 인기가있는 것으로 보인다.

    IIS 나 Apache에서 TWebBroker를 사용하여 여러 웹 응용 프로그램을 만들었습니다. 비동기식이며 다른 응용 프로그램과 Delphi 코드를 쉽게 포트/공유 할 수 있습니다. 그리고 Ajax 호출을 지원합니다.

    1

    델파이, 클라이언트 측에서 순수 자바 스크립트 및 반짝이는 인터페이스? 너 Unigui에 대해 이야기하고있다!

    +0

    아니, 전체 애플 리케이션을 revwrite하고 싶지 않아, 그것은 50 만 라인 이상이야. 클라이언트 측을 추가하기 만하면됩니다. 하지만 당신 말이 맞습니다, Unigui는 매우 유망합니다, 아마도 다른 프로젝트에서 그것을 사용할 것입니다. – balazs

    1

    나는 PHP, ASP, Cold Fusion에서 일했으며 이전에는 델파이에서도 (거의) 동일한 작업을하고 싶었습니다. 나는 xxm을 시작했다. 그것은 동일한 파일에 델파이와 HTML 코드를 가지고 있으며 브라우저에서 새로 고침을하면 (다시) 라이브러리를 컴파일합니다. 저는 IIS, Apache, InternetExplorer, Firefox에서 또는 Delphi 기반 HTTP 구현에서 바로 실행할 수 있도록이 라이브러리에 대한 핸들러를 만들었습니다. (나는 또한 HTTP.SYS 핸들러에 대한 작업을 시작하지만 많은 더 많은 일을 걸릴 수 있습니다.)

    또한, 관련 질문에, 나는 스트리밍 싶어, 내가 출력을 전송받을 것이 무엇 것을 원했다 최대한 빨리 청취하는 클라이언트에게 제공되므로 장기간 실행되는 페이지, 긴 폴링 등을 수행 할 수 있습니다. GWT와 다른 클라이언트 측 스크립트는 프로토 타입과 jquery를 성공적으로 사용했습니다.

    관련 문제