国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

定時器問題

zwc2004
$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秒了,打開越多,間隔越小,有時候一下子返回好幾個

3128 3 0
3個回答

法師

這樣有問題吧,有1萬個連接連上來,創(chuàng)建1萬個定時器,那服務(wù)器不掛才怪啊。
創(chuàng)建一個定時器大家一起用比較合理

法師

$io->on('workerStart', function(){
? ? // ...
});

  • zwc2004 2018-11-15

    這個是生成了一個定時器,但是如何跟我上面的邏輯結(jié)合呢,把信息定時推送給前端?

法師
$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)該是這樣的,大概意思是這樣,有報錯自己解決下

  • zwc2004 2018-11-16

    果然是可以的,追加一個:如果用戶關(guān)閉了瀏覽器,我看并沒有調(diào)用disconnect,也就是說如何釋放掉連接呢?

年代過于久遠,無法發(fā)表回答
??