Веб-клиент в реальном времени для приложения delphi. Как?

прежде всего, то, что я хочу, довольно сложно, по крайней мере для меня, но, с другой стороны, это звучит захватывающе.

У меня есть программное обеспечение, написанное на delphi, и я хочу веб-клиент в реальном времени для него.

требования:

  • на стороне клиента чистый Javascript
  • блестящий интерфейс (GWT, SmartGWT )
  • асинхронное соединение между сервером и клиентом. Ajax push, длинный опрос, Комета, Вебсокетов?

на стороне сервера

  • масштаб-способность

на стороне delphi я думаю, что мог бы использовать ICS от Overbyte, чтобы обрабатывать запросы. Я знаю, что THttpAppSrv из ICS pack может легко обслуживать простой контент, но как насчет Websocket или как я могу сделать длинный опрос с ним?

Как вы думаете, это хорошая комбинация ( GWT, SmartGWT на стороне клиента и ICS на стороне delphi), есть ли там какой-либо пример проекта, или есть какое-то другое решение?

обновление Спасибо за полезные комментарии, я думаю, что я ближе к решению. Хорошо знать, что GWT может использовать пользовательский сервер, однако я думаю, что Арно прав, GWT с собственным сервером причала-это полное решение, но, к сожалению, не для меня. :) Я думаю, мне нужен сервер, написанный на delphi, который может общаться с GWT RPC.

обновление 2 Я принял ответ Арно Буше, который выглядит мне лучше всего подходит для исходного вопроса, однако я думаю, что есть лучшее решение (если вы немного измените требования) для создания клиента, работающего в браузере для приложения delphi. Я просто делаю небольшой комментарий, чтобы поделиться идеей. Наконец, я использовал узел.js сервер и подключил его к моему приложению delphi с помощью ZMQ.

4 ответов


о HTTP-сервере на стороне Delphi рассмотрите возможность использования http режима ядра.сервер sys предоставлено Microsoft с XP. Должно быть быстрее, чем ICS.

для части AJAX взгляните на Op4JS или до ElevateDBBuilder.

что замечательно с этими решениями, так это то, что вы можете написать объектный код pascal и что этот код будет переведен на JavaScript. Еще не закончили, но стоит немного подождать их время отпускания.

конечно, существуют более классические решения AJAX, такие как IntraWeb или ExtPascal. Оба реализуют свой собственный веб-сервер.

о GWT, AFAIK это библиотеки java, глубоко связанные с миром Java. Вы не сможете заставить его работать с Делфи.

редактировать о GWT:

GWT-это полная клиент-серверная структура.

Если вы идете с GWT, я подозреваю, что вы закончите с полным Java переписывает приложение в какой-то момент. Или вы пропустите большую часть интереса GWT как рамки. Это твой выбор.

Я бы предпочел полагаться на более стандартный подход, используя JSON для связи, например, как мы делаем с нашей структурой.


Delphi, чистый javascript на стороне клиента и блестящий интерфейс? Ты говоришь о Unigui!


Я работал над PHP, ASP и Cold Fusion раньше и хотел сделать (почти) то же самое с Delphi. Я начал xxm. Он имеет Delphi и HTML-код в тех же файлах, и (re)компилирует библиотеку при нажатии обновления в браузере. Я сделал обработчики для этих библиотек, чтобы вы могли запускать их в IIS, Apache, InternetExplorer, Firefox или прямо из реализации HTTP на основе Delphi. (Я начал работать над http.обработчик sys также, но это займет намного больше времени работа.)

кроме того, в отношении вашего вопроса, я хотел потокового, Я хотел, чтобы то, что я вывожу, было передано как можно скорее слушающему клиенту, чтобы вы могли делать длинные страницы, длинный опрос и тому подобное. Что касается GWT и другого клиентского скрипта, я успешно использовал prototype и jquery.


вы проверили Intraweb? Я сам не использовал его широко , но он кажется довольно популярным для веб-приложений Delphi.

Я сделал несколько веб-приложений, используя TWebBroker с IIS или Apache. Он асинхронный и позволяет легко переносить/обмениваться кодом Delphi с другим приложением. И он будет поддерживать вызовы Ajax.