需要做一個(gè)tcp接受數(shù)據(jù)以后 實(shí)時(shí)轉(zhuǎn)發(fā)給前端的web頁(yè)面
參照web-msg-sender例子來(lái)寫
為什么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); //這里通過(guò)sender_io給前端頁(yè)面推送 但是前端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)聽(tīng)到tcp端了
但是有個(gè)疑問(wèn):這樣的話 會(huì)不會(huì)每個(gè)websocket鏈接都會(huì)去創(chuàng)建一個(gè)tcp進(jìn)程?
如果前端有100個(gè)頁(yè)面訪問(wèn),就會(huì)建立了100個(gè)tcp監(jiān)聽(tīng)進(jìn)程?