如何使用定时器功能,每间隔一段时间,给用户发送消息 能详细讲解下吗 我看你的代码没看太明白呀
Timer::add(10, function(){ Gateway::sendToAll('something'); }); 每10秒给所有用户发送信息something
你好 你误会我的意思了 这个定时器是放在哪里? 是回调函数里面吗? 有人说是这个方法里面 onWorkerStart,但是这个方法里面是有几个进程就会重复发送很多次
function onWorkerStart($worker) { // 只在0号进程开启定时器 if ($worker->id == 0) { Timer::add(10, function(){ Gateway::sendToAll('something'); }); } }
受教了。我搞搞试试
老哥我看了一天别的思路 基本上都是你在回 所以 我想请问你下 客服给底层发送关闭的心跳 我把定时器放到这个回掉里面 但是会重复生成这个延时器
ws.onmessage = function(e) { receiveMessageTimer = setTimeout(() => { console.log('这是关闭'); ws.close(); }, 1000 * 10); // 30s没收到信息,代表服务器出问题了,关闭连接。如果收到消息了,重置该定时器。
Timer::add(10, function(){
Gateway::sendToAll('something');
});
每10秒给所有用户发送信息something
你好 你误会我的意思了 这个定时器是放在哪里? 是回调函数里面吗? 有人说是这个方法里面 onWorkerStart,但是这个方法里面是有几个进程就会重复发送很多次
function onWorkerStart($worker) {
// 只在0号进程开启定时器
if ($worker->id == 0) {
Timer::add(10, function(){
Gateway::sendToAll('something');
});
}
}
受教了。我搞搞试试
老哥我看了一天别的思路 基本上都是你在回 所以 我想请问你下 客服给底层发送关闭的心跳 我把定时器放到这个回掉里面 但是会重复生成这个延时器
ws.onmessage = function(e) {
receiveMessageTimer = setTimeout(() => {
console.log('这是关闭');
ws.close();
}, 1000 * 10); // 30s没收到信息,代表服务器出问题了,关闭连接。如果收到消息了,重置该定时器。