Gateway的client_id生成规则问题?

hulang

问题描述

如,我A页面,有3个用户访问,会创建
7f00000108fc00000001-3是吗?如果其中一个用户离开了,再有人进来,还会创建3吗?
我是把:client_id与uid绑定,加入到了某个群组,client_id会不会出现重复
如果我把服务器重启了,client_id又会从7f00000108fc00000001生成,我到时候应该怎么清空所有已加入的群组呢?还是服务器重启后,就自动解绑了,如果是,就行。

我就是做每个文章页面的在线用户统计,不是所有页面的统计。。页面可能有1000-1W不等。。
页面ID是群组ID。。。

261 1 0
1个回答

admin

gatewayworker内部处理了,当clientID 离开,自动从 各个群组退出(文档有写)

clientID会从0x00 到0xff ff ff ff (4字节)生成 unpack("N")
在生成clientID之前,gatewayworker会判断 isset($connection[$newClientID++]) 如果存在了就再++,除非服务器爆满(这是不可能的,2^32)去算算,除非你是单个gateway服务器,且连接数特别多(4294967296个连接)
99%情况下,网卡和cpu会成为瓶颈,几乎不可能出现你说的因为这个clientID的问题

如果你的gateway有两台,那么 你可以同时最大承载 84亿 个链接,够地球人了

×
🔝