2 回答
TA贡献1877条经验 获得超6个赞
嘿 ReactPHP 核心团队成员。简而言之,您可以在一个端口上使用so_reuseport套接字服务器上的两个服务器进行侦听,但这只是与其中任何一个的循环连接。你可以做的是尝试 cboden 的建议,我在这里做了,如果你有任何问题,请告诉我们:https ://github.com/ratchetphp/Ratchet/issues/771#issuecomment-569439423
即:
您的代码试图将两个 SocketServer 连接到同一个端口。您需要将单个 SocketServer 附加到一个端口,然后根据您选择的条件(例如 HTTP 标头、端点或子域)重新路由流量。请参阅https://github.com/ratchetphp/Ratchet/blob/master/src/Ratchet/App.php类或一些https://github.com/reactphp/http/blob/master/examples/82-server- upgrade-chat.php以获得一些灵感。
TA贡献1777条经验 获得超10个赞
实际上你不能在同一个端口上运行多个 websocket。但您可以将所有 websocket 合二为一。并用这样的 url 查询将它们分开。
http://localhost:8080?source=socket_1
http://localhost:8080?source=socket_2
并且在您的代码中可以通过以下方式获取请求来源:
function onOpen( ConnectionInterface $conn ) {
$querystring = $conn->WebSocket->request->getQuery()->toArray();
if($querystring['source'] == 'socket_1'){
// run socket 1 jobs
else{
// do socket 2
}
// and change
}
我没有这样做,我没有测试它。所以 ... :)
- 2 回答
- 0 关注
- 225 浏览
添加回答
举报
