需要做一個tcp接受數(shù)據(jù)以后 實時轉(zhuǎn)發(fā)給前端的web頁面
參照web-msg-sender例子來寫
為什么socket推送前端2120收不到
代碼該怎么改呢?
$sender_io = new SocketIO(2120);
$sender_io->on('connection', function($socket){
$socket->on('login', function ($uid)use($socket){
...
});
$socket->on('disconnect', function () use($socket) {
...
});
});
$web = new WebServer('http://0.0.0.0:2123');
$web->addRoot('localhost', __DIR__ . '/web');
$tcp_worker = new Worker("tcp://0.0.0.0:2500");
$tcp_worker->count = 10;
$tcp_worker->onMessage = function($connection, $data)
{
global $sender_io;
$sender_io->emit('new_msg', $data); //這里通過sender_io給前端頁面推送 但是前端2120收不到
$connection->send('hello ' . $data);
};
Worker::runAll();
$sender_io->on('workerStart', function(){
$tcp_worker = new Worker("tcp://0.0.0.0:2500");
$tcp_worker->onMessage = function($connection, $data)
{
global $sender_io;
$sender_io->emit('new_msg', $data);
$connection->send('ok ' . $data);
};
$tcp_worker->listen();
});
我把代碼改成這樣的話
就可以監(jiān)聽到tcp端了
但是有個疑問:這樣的話 會不會每個websocket鏈接都會去創(chuàng)建一個tcp進程?
如果前端有100個頁面訪問,就會建立了100個tcp監(jiān)聽進程?