Перенос веб-приложения Ajax в веб-сокет

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

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

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

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

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

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

Спасибо

1 ответ

Решение

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

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

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

Другие вопросы по тегам