如何使用定時器功能,每間隔一段時間,給用戶發(fā)送消息 能詳細講解下嗎 我看你的代碼沒看太明白呀
Timer::add(10, function(){ ? ? ? ? Gateway::sendToAll('something'); }); 每10秒給所有用戶發(fā)送信息something
你好 你誤會我的意思了 這個定時器是放在哪里? 是回調函數里面嗎? 有人說是這個方法里面 onWorkerStart,但是這個方法里面是有幾個進程就會重復發(fā)送很多次
function onWorkerStart($worker) { ? ? // 只在0號進程開啟定時器 ? ? if ($worker->id == 0) { ? ? ? ??Timer::add(10, function(){ ? ? ? ? ? ? Gateway::sendToAll('something'); ? ? ? ? }); ? ? } }
受教了。我搞搞試試
老哥我看了一天別的思路 基本上都是你在回 所以 我想請問你下 客服給底層發(fā)送關閉的心跳 我把定時器放到這個回掉里面 但是會重復生成這個延時器
ws.onmessage = function(e) { receiveMessageTimer = setTimeout(() => { console.log('這是關閉'); ws.close(); }, 1000 * 10); // 30s沒收到信息,代表服務器出問題了,關閉連接。如果收到消息了,重置該定時器。