将 Ajax Web 应用程序迁移到 Web 套接字

发布于 2024-10-11 03:34:15 字数 560 浏览 2 评论 0原文

我想我只是错过了一些细节,导致我无法看到全貌。

我有一个网络应用程序,它每 x 次使用 ajax 请求来更新客户端新信息或任务。

我在服务器上还有一个长时间运行的进程,它是一个java计算引擎。我希望这个引擎向客户端发送更新。

  1. 我想知道如何将我的网络应用程序迁移到使用 websocket。可能是 phpwebsocket 或类似的。我的服务器可以“决定”向特定客户端发送信息吗?看起来可以查看 php-websocket。

  2. 我的java后端长进程可以使用websocket服务器向特定客户端发送通知吗?如何?好吧,我可以说我的 java 应用程序可以使用一个可以通过 websocket 而不是 http 发送的类。

但是 websocket 服务器如何知道向哪个客户端发送“信息”。我对这一切感到困惑。有什么文件可以更详细地解释这一点吗?看来 websocket 可以创建我的 Web 应用程序的实例。

谢谢

I think I'm just missing a little detail that is preventing me from seeing the whole picture.

I have a web application which use ajax request every x time to update client with new information or tasks.

I also have a long running process on the server which is a java computation engine. I would like this engine to send update to the client.

  1. I am wondering how to migrate my web app to using websocket. Probably phpwebsocket or similar. Can my server 'decide' to send information to a specific client? It seems possible looking at the php-websocket.

  2. Can my java backend long process use the websocket server to send notification to a specific client. How? well I can say that my java app could use a class that could send over websocket instead of http.

But how the websocket server knows to which client to send the 'info'. I am puzzle by all this. Any document that explain this in more details? It seems that the websocket could create an instance of my web application.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烈酒灼喉 2024-10-18 03:34:15

您的服务器将具有任意数量的活动客户端套接字,它决定写入哪些套接字(可能响应用户的输入)。

phpwebsocket (边缘仍然非常粗糙)有一个 User 类,具有 $id$socket (这是底层 TCP 套接字)和 $handshake 字段。您可以使用有关User 的附加元数据(例如计算标识符)来扩展该类。或者您可以使用从计算 id 到 User 的数组映射。

也许当 Java 计算 n 完成时,您可以查找与该计算关联的套接字,并写入其套接字。

Your server, which will have an arbitrary number of active client sockets, decides which ones to write to (possibly in response to input from the user).

phpwebsocket (which is still very rough around the edges) has a User class with $id, $socket (this is the underlying TCP socket), and $handshake fields. You could extend that class with additional metadata about the User (e.g. a computation identifier). Or you could use an array mapping from computation id to User.

Perhaps when Java computation n finishes, you can look up the socket associated with that computation, and write to its socket.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文