gatewayworker + webman 第二条message事件后session 为null

pengzhen

架构是gatewayworker + webman,bussiness进程放在webman里。逻辑是连接websocket的时候带上token,在onconnect事件根据token读取用户id,然后保存到session里,onmessage读取session里的用户id判断用户身份。本地websocket测试的时候
截图
发送的第一个消息能获取到session,第二个和第三个获取不到,加上usleep后就可以了,或者连接的ip改成192.168.3.53这样的,也可以了
截图

session记录代码
截图
截图

这是为啥?

137 4 0
4个回答

pengzhen

大佬帮看下 @walkor

  • pengzhen 2天前

    很纳闷啊,设置是在connect的时候,为什么第一条onmessage事件有数据,第二条后就获取不到session了

session操作部分的代码呢

  • pengzhen 2天前

    加到问题描述里了

  • walkor 2天前

    gatewayWorker有路由功能,你是否设置了路由?

  • pengzhen 2天前

    没有,之前开启过,后面关闭了,127.0.0.1 改成192.168.3.53 就可以了,或者加一行代码$_SESSION = Gateway::getSession($clientId ); 也好了,或者在发送消息的时候usleep下也可以

  • walkor 2天前

    看不出什么问题,我这本地也无法复现

  • pengzhen 2天前

    我是搭在wsl里的

pengzhen

截图
这个之前很早就注释了

  • 暂无评论
SillyDog

可以提供一个最小复现代码吗

  • 暂无评论
×
🔝