我設(shè)置了2個BusinessWorker進程,0為定時器進程,在收消息的時候把進程重訂,只能進入1
$gateway->router = function($worker_connections, $client_connection, $cmd, $buffer)
{
//0為刪除定時器 不能被阻塞
unset($worker_connections);
return $worker_connections;
};
會出現(xiàn)同時執(zhí)行兩個的情況(因為業(yè)務(wù)需要前臺每個用戶會有兩個websocket連接,每個消息會在每個websocket里發(fā)送給后臺).
我在接收信息的時候打印出來的值就會有異常,我在接收消息的時候同時打印和===?應(yīng)該是===一行,但是會出現(xiàn)**======.不知道是否是我邏輯有問題還是怎么,如果消息都進同一個進程,處理邏輯不應(yīng)該是處理完一個之后再處理下一個消息?求大神講解!!
public static function onMessage($client_id, $message)
{
echo "***";
echo "===\n";
}
1、unset 邏輯沒有問題, 這個邏輯即代表gateway將消息轉(zhuǎn)發(fā)到了某臺businessworker機器的1號進程
2、數(shù)據(jù)展示看似異常,其實是正常的,這只是終端顯示的問題而已,你可以打印數(shù)據(jù)時,順帶打印上進程ID: posix_getpid(),就能看到你需要的。