1

是否可以在没有 Ratchet 的情况下使用 ReactPHP 将数据广播或发送到浏览器并用 javascript 捕获它以相应地处理它?

我在事件循环上有一个periodicTimer,有时它需要广播或发送给通过套接字连接的用户。我看到有一个类套接字,在 React github 项目页面上的示例中,它被实例化但未在 web-flow 中使用,仅在 netcat 上使用。是否可以使其在 socket.IO 或 Ratchet 等浏览器上本地工作?

工厂和连接工作正常,我只是不知道如何绑定套接字以使用事件循环向服务器发送/接收数据。

4

1 回答 1

2

广播这不是超级特殊的功能。

首先,您需要将所有用户连接保存在全局范围内。例如你有一个类TestServer,它可以包含属性连接(类型数组)。在方法运行中,您编写循环。

例如,这是您的连接事件

$server->on('connection', function(ConnectionInterface $conn) {
     $this->connections[] = $conn;
});

并写方法

public function broadcast($message) {
     foreach($this->connections as $conn) {
          $conn->write($message);
     }
}

注意力! 如果用户断开连接,您必须编写代码来删除断开连接,如果需要,您可以编写有关主题的逻辑。

于 2017-04-07T08:46:51.487 回答