Hi walkor,
用Workerman作为TCP服务器时, 设备同时连接时,
self::$statistics++; $this->id = $this->_id = self::$_idRecorder++; 这行代码在给_id赋值时会出现重复的情况,
请教下walkor,有没有不管几千上万台设备同时连接服务器时clientid不重复的算法,感激不尽~
GatewayWorker运行过程中client_id不会重复的, 你代码中发的 $this->id = $this->_id = self::$_idRecorder++; 是进程内部的socket 连接编号,并不是client_id。
是的,不过我现在不是用的GatewayWorker,而是直接用的Workerman, 所以我想给$this->id 和 $this->_id 自定义赋值且不会出现重复,不过我现在随机字符串20位也是会出现重复的值,且重复的机率比较大(注:只有三台设备同时重连), 问下walkor,能否有办法解决呢,还是否我随机数算法写的不合理
http://doc.workerman.net/315338 手册有写,你可以加上worker->id前缀
好的 谢谢walkor
GatewayWorker运行过程中client_id不会重复的,
你代码中发的 $this->id = $this->_id = self::$_idRecorder++; 是进程内部的socket 连接编号,并不是client_id。
是的,不过我现在不是用的GatewayWorker,而是直接用的Workerman, 所以我想给$this->id 和 $this->_id 自定义赋值且不会出现重复,不过我现在随机字符串20位也是会出现重复的值,且重复的机率比较大(注:只有三台设备同时重连), 问下walkor,能否有办法解决呢,还是否我随机数算法写的不合理
http://doc.workerman.net/315338
手册有写,你可以加上worker->id前缀
好的 谢谢walkor