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