关于Gateway下分组的问题,谢谢

程晓冬

apache环境中
初学者,想实现一个简单的在线聊天室大概功能如下
用户登陆->进入聊天室->聊天
想了一下大概的实现方式
填写登陆信息->提交到框架中->client_id加入组中->获取最新组内所有成员调用接口返回->js处理
不知这样和框架结合是否合理,我理解的框架只是调用workerman接口推送消息 workerman本身不处理任何逻辑
但是现在遇到几个问题还请多指教

1 提交登陆信息后 joinGroup 后通过getClientSessionsByGroup打印 组内有这条client_id
但是页面跳转后下一个登陆的用户joinGroup 后getClientSessionsByGroup打印后上一个人的client_id就没有了,但是用getAllClientSessions打印后里面有值 只是没有之前登陆过的用户的自定义的那些session内的信息

2 如果保持不同的页面都保持websocket的链接?加载公共的js每次执行js new WebSocket("ws://127.0.0.1:xxx")吗?
多谢指教

3257 1 0
1个回答

walkor

1、GatewayWorker中的session是基于连接(client_id)的,连接断开了对应client_id的session就销毁了。页面跳转后当前页面被刷新连接会断开(断开是浏览器的机制且无法改变),对应连接的session就销毁了,所以就看不到了,跳到新页面应该重新连接GatewayWorker,重新登录GatewayWorker设置session

2、每个页面都应该执行js new WebSocket("ws://127.0.0.1:xxx")

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