关于GatewayWorker里session丢失的问题

gemn

GatewayWorker的版本为 3.0.12 ,我使用了setSession设置了Session,然后我 在onMessage,Gateway::getSession获取的session为空,没有我刚设置的SESSION,

2683 5 0
5个回答

gemn

workerman的版本为3.5.18,我在本地部署并没有发生这个问题,当我部署到服务器上的时候发生了这个问题,Gatewayworker和我的项目是不在一个服务器上面的,

  • 暂无评论
gemn

具体流程:
1.手机APP连接上服务器的Gatewayworker,然后返回clientid给手机APP
2.手机APP提交clientid和用户的ID上来后使用bindUid绑定然后setsession传入clientid和需要set的session,
3,手机APP发送消息Gatewayworker,然后在onMessage中使用Gateway::getSession

 

  • 暂无评论
walkor

可能是业务逻辑问题,需要自己记录日志定位。
设置 session的时候记录日志,包括client_id,session内容。
获取session的时候记录日志,包括client_id,season内容

  • gemn 2019-05-24

    本地测试的时候是完全没问题的,同样的代码在服务器端上就出现了这个问题,setsession的时候client_id和session的内容都是有的,获取的时候只获取到了一个空数组

walkor

既然本地是好的,服务器上不行,那就检查下哪里有差异,然后把差异去掉定位下吧。
从你提供的信息里定位不到问题的

  • taozywu 2019-05-24

    还有检查环境, php环境等等

gemn

现在问题发现了,是lanIp配置的问题- -,我看到client_id貌似是用local_ip和端口号生成的,但是如果我把local_ip设置为服务器的IP地址会显示Cannot assign requested address这个错误,如果我把client_id生成的IP替换成服务端的,然后在服务端口把local_ip换成0.0.0.0整个程序正常,用的是腾讯云

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