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 關注
- 172 瀏覽
添加回答
舉報