workerman 怎么判断客户端连接了 比如 10秒内 没说话 然后发送信息给客户端 这样怎么实现呢

ynbenlai

workerman 怎么判断客户端连接了 比如 10秒内 没说话 然后发送信息给客户端 这样怎么实现呢 我用timer 定时执行 怎么执行时候client_id 就为空 是不是不会记住当前执行client_id

1696 1 0
1个回答

blogdaren

场景类似于"QQ的对方正在输入...", 原理大致如下:

  1. Timer定时器里的回调函数配合use关键字引入$client_id;
  2. 设立一个静态数组形如:self::$bucket[$client_id]['now_time'], 然后和当前时间比较,超时了就发送消息,否则一旦收到消息把当前最新时间更新过来;
  3. 注意完事后可能有必要销毁相关的定时器以及静态数组,防止潜在的内存泄漏隐患;
年代过于久远,无法发表回答
🔝