workerman isOnline

anyway

我想实现一个浏览器只能打开一个聊天窗口
如果浏览器打开多个页面 isOnline 还可以用么??
请教群主如果可以 能讲解下具体原理么

5247 2 0
2个回答

walkor

Gateway::isOnline($client_id)
是针对每个链接的,每打开一个页面你的websocket应该就会与workerman建立一个链接,每个链接被分配了一个client_id(2.1.2版本中这个id叫uid,值是开发者自己定义的)。这个client_id保存在Gateway进程中,并且对应一个socket链接。

如果要判定某个client_id是否在线,只需要到对应那个gateway进程中查找client_id对应的socket是否存在即可。Gateway::isOnline($client_id)就是BusinessWorker进程与通过socket与Gateway进程通讯,查询client_id对应的socket是否存在来判断是否在线的

  • 暂无评论
anyway

好的 谢谢 明白 我每次都拿着$client_id 校验就行

  • 暂无评论
年代过于久远,无法发表回答
🔝