$io->on('connection', function($socket)use($io){
? ? ? ? echo "new connection coming\n";
? ? ? ? $time_interval = 3;
? ? ? ? $n = 0;
? ? ? ? Timer::add($time_interval, function() {
? ? ? ? ? ? global $io,$n;
? ? ? ? ? ? $io->emit('sendLatest', $n++);
? ? ? ? });
});
\Workerman\Worker::runAll();
兩個問題,麻煩各位幫忙解答一下:
1.當頁面打開第一個頁面時$n是從0開始返回的,但是打開第二個頁面時$n是從第一個頁面的數(shù)字開始返回,怎么才能每個請求使用一個$n呢?
2.當打開多個頁面時,返回的時間間隔明顯小于3秒了,打開越多,間隔越小,有時候一下子返回好幾個
$io->on('connection', function($socket){
? ? ? ? //all_sockets保存所有的socket
? ? ? ? global $all_sockets;
? ? ? ? //給每個socket添加個屬性n記錄自增值
? ? ? ? $socket->n = 0;
? ? ? ?$all_sockets = $socket;
});
$io->on('disconnect', function($socket){
? ? ? ?//連接關(guān)閉時把socket從all_sockets里刪除
? ? ? ??global $all_sockets;
? ? ? ?unset($all_sockets);
});$io->on('workerStart', function() {
? ? Timer::add(3, function(){
? ? ? ? global $all_sockets;
? ? ? ? foreach ($all_sockets as $socket) {
? ? ? ? ? ? ? ? $socket->emit('sendLatest', $socket->n++);
? ? ? ? }
? ? });
});
感覺你的業(yè)務(wù)邏輯應(yīng)該是這樣的,大概意思是這樣,有報錯自己解決下