walkor / GatewayWorker

Distributed realtime messaging framework based on workerman.
MIT License
1.01k stars 296 forks source link

createGlobalClientId failed #12

Closed yanhuichao closed 8 years ago

yanhuichao commented 8 years ago

看到最近的更新修复了上一个版本中createGlobalClientId failed这个问题,commit message里没有提到,觉得还是提示下同样遇到这个问题的童鞋,以便交流: 2.0.5之前的createGlobalClientId()依赖Redis/Memcached生成client_id(global_client_id),createGlobalClientId()函数里没有处理Redis/Memcached异常,而直接将返回值作为key保存客户端信息。可能导致后续Redis恢复,部分连接无法正常更新Redis中数据,需要重启Workman。

2.0.5里generateConnectionId()使用变量_connectionIdRecorder生成client_id,不依赖Redis,建议大家使用这个修改。

walkor commented 8 years ago

是的。GatewayWorker1.x全局client_id的生成依赖memcache/redis,最新的GatewayWorker2.x已经去掉这个依赖,不会出现createGlobalClientId failed问题了。