2011-01-08 6 views
0

Я думаю, что у меня просто отсутствует небольшая деталь, которая мешает мне видеть всю картину.Перенос веб-приложения Ajax на веб-сокет

У меня есть веб-приложение, которое каждый раз использует запрос ajax для обновления клиента с новой информацией или задачами.

У меня также есть длительный процесс на сервере, который является механизмом вычисления java. Я бы хотел, чтобы этот движок отправлял обновление клиенту.

  1. Мне интересно, как перенести мое веб-приложение на использование websocket. Возможно phpwebsocket или аналогичный. Может ли мой сервер «решить» отправлять информацию конкретному клиенту? Кажется возможным посмотреть на php-websocket.

  2. Может ли мой java-backend-процесс использовать сервер websocket для отправки уведомления конкретному клиенту. Как? хорошо, я могу сказать, что мое приложение java может использовать класс, который может отправлять через websocket вместо http.

Но как сервер веб-сервера знает, кому клиент отправляет «информацию». Я головоломка от всего этого. Любой документ, который объясняет это более подробно? Кажется, что websocket может создать экземпляр моего веб-приложения.

Благодаря

+1

fyi- некоторые недавние проблемы безопасности с веб-окнами, которые вы, возможно, захотите прочитать до его кодирования. – goat

ответ

0

Ваш сервер, который будет иметь произвольное количество активных клиентских сокетов, решает, какие из них написать (возможно, в ответ на ввод от пользователя).

phpwebsocket (который по-прежнему очень грубо вокруг краев) имеет User класс с $id, $socket (это основной сокет TCP) и $handshake полей. Вы можете расширить этот класс с дополнительными метаданными о User (например, идентификатор вычисления). Или вы можете использовать сопоставление массива от идентификатора вычисления до User.

Возможно, при вычислении Java n вы можете найти сокет, связанный с этим вычислением, и записать его в сокет.

+0

Мое вычисление Java может «POST» в ws: // mydomain/mysocketapp? User = xx; msg = «завершено». Затем websocket найдет соответствующий пользователь/сокет и отправит сообщение «echo» пользователю. – Bastan

+0

Имейте в виду, что веб-порты не используют HTTP после подключения, если вы не реализуете HTTP через websocket. Вам необязательно использовать веб-порты для связи между вашим сервером и Java-сервером. Вы можете использовать другую форму межпроцессного общения. –

+0

Любой указатель межпроцессного общения, на который я мог бы посмотреть и узнать больше? – Bastan

Смежные вопросы