Ratchet WebSocket Server 可以向客户端本身发送消息吗?

2022-08-30 21:15:01

我想使用棘轮(http://socketo.me)在iPhone应用程序和服务器之间建立永久连接。我需要在应用程序和服务器之间交换数据。

从此示例(http://socketo.me/docs/hello-world)中,我发现我在Message上有一个函数,当应用程序向服务器发送按摩并且服务器可以向应用程序发送响应时,将调用该函数。

但是,服务器还必须能够将数据发送到应用程序,而无需从应用程序获取数据。例如,应用程序和服务器之间的连接已建立。服务器上发生了一些事情,我们需要向应用程序发送新数据。我该怎么做,可能吗?

主要问题是我如何从服务器向应用程序发送数据?

感谢您的任何帮助。


答案 1

这确实是可能的。您需要以某种方式与 WebSocket 服务器进程进行通信。您可以通过使用某种形式的消息传递(无论是 RPC 还是消息队列)来执行此操作。

Ratchet 本身基于 React 事件循环。这意味着与Ratchet的任何形式的通信都必须与该事件循环集成。在 React 主页上,您可以看到一些已经存在的集成:

在 Ratchet 文档中,有一个教程介绍如何使用 React/ZMQ 将消息从任何地方推送到 WebSocket 服务器。


答案 2

Ratchet还实现了WAMP,其中包括PubSub。因此,您的客户端可以订阅某些主题,并且您可以让其他客户端(即在后端基础架构上运行)发布到这些主题。例如,您可以通过Ratchet将基于AutobahnPython的客户端发布到基于AutobahnAndroid的移动应用程序或基于AutobahnJS的HTML5客户端。


推荐