Перенос веб-приложения Ajax в веб-сокет
Я думаю, что мне просто не хватает небольшой детали, которая мешает мне увидеть всю картину.
У меня есть веб-приложение, которое каждый раз использует запрос ajax для обновления клиента новой информацией или задачами.
У меня также есть длительный процесс на сервере, который является механизмом вычислений Java. Я хотел бы, чтобы этот двигатель отправлял обновление клиенту.
Мне интересно, как перенести мое веб-приложение на использование веб-сокета. Вероятно, phpwebsocket или аналогичный. Может ли мой сервер "решить" отправить информацию конкретному клиенту? Кажется возможным, глядя на php-websocket.
Может ли мой длительный процесс на Java-сервере использовать сервер websocket для отправки уведомлений определенному клиенту. Как? Ну, я могу сказать, что мое Java-приложение могло бы использовать класс, который мог бы отправлять через websocket вместо http.
Но как сервер websocket знает, какому клиенту отправлять "информацию". Я озадачен всем этим. Любой документ, который объясняет это более подробно? Кажется, что веб-сокет может создать экземпляр моего веб-приложения.
Спасибо
1 ответ
Ваш сервер, на котором будет произвольное количество активных клиентских сокетов, решает, в какие из них писать (возможно, в ответ на входные данные пользователя).
phpwebsocket
(который все еще очень груб по краям) имеет User
класс с $id
, $socket
(это основной сокет TCP), и $handshake
поля. Вы можете расширить этот класс дополнительными метаданными о User
(например, идентификатор вычисления). Или вы можете использовать отображение массива из идентификатора вычисления в User
,
Возможно, когда Java вычисления n
По окончании вы можете посмотреть сокет, связанный с этим вычислением, и записать его в сокет.