【问题标题】:Possible to broadcast using ReactPHP?可以使用 ReactPHP 进行广播吗?
【发布时间】:2016-09-08 21:38:19
【问题描述】:
是否可以在没有 Ratchet 的情况下使用 ReactPHP 将数据广播或发送到浏览器并使用 javascript 捕获以相应地处理它?
我在事件循环上有一个periodicTimer,有时它需要向通过套接字连接的用户广播或发射。我看到有一个类套接字,在 React github 项目页面的示例中,它被实例化但没有在 web-flow 中使用,仅在 netcat 上使用。是否可以使其在 socket.IO 或 Ratchet 等浏览器上原生运行?
工厂和连接工作正常,我只是不知道如何绑定套接字以使用事件循环向服务器发送/接收数据。
【问题讨论】:
标签:
websocket
callback
reactphp
【解决方案1】:
广播这不是超特殊的功能。
首先,您需要将所有用户连接保存在全局范围内。
例如你有一个类TestServer,它可以包含属性connections(类型数组)。在 run 方法中,您编写循环。
例如这是你的连接事件
$server->on('connection', function(ConnectionInterface $conn) {
$this->connections[] = $conn;
});
并写方法
public function broadcast($message) {
foreach($this->connections as $conn) {
$conn->write($message);
}
}
注意!
如果用户断开连接,您必须编写代码来删除断开连接,如果需要,您可以编写有关主题的逻辑。