请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

多端登录踢下线

在代码中只是判断了是否是一个设备,然后进行了nioSocketChannel.writeAndFlush(pack);操作

  1. 那这个操作具体是做什么的呢?是将之前登录的channel覆盖吗还是只是单纯的添加了一个服务端向客户端发送数据的channel
  2. 在判断有相同客户端登录了后进行踢下线操作,但是没有具体的logout操作只有下线通知,所以这一步是发送通知给客户端,然后是让客户端选择是继续登录还是退出登录吗,那这个时候的数据是否发送完毕可以确定嘛
  3. 那另一个登录的设备那里是什么显示呢,如果之前登录的设备一直不点退出登录的话不就相当于是两个设备在线了吗

正在回答

1回答

1.之前登陆的channel 在客户端收到踢人下线时发送断开才清除,服务端此时不会操作channel

2.客户端在处理完自己的消息后才会发起断开连接

3.在收到多端登陆的通知后我们的sdk就要处理剩下的消息处理完后就会断开连接了,这个操作不是用户点退出 是我们的sdk就断开了。我们的sdk通知给使用我们sdk的开发者让开发者提示用户已被踢下线。这个流程可以参考下微信,这是被动退出的。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕函数5251279 #1
    所以这个指令只是单纯的通知客户端下线通知的嘛
    这个断开连接的操作是在哪里体现的呀,我看这个Listner里面没有下线的代码
    回复 有任何疑惑可以回复我~ 2023-05-07 19:21:02
  • 是,只是通知,你可以使用原有的logout 也可以新定义一个。
    回复 有任何疑惑可以回复我~ 2023-05-07 19:31:52
  • 提问者 慕函数5251279 回复 conan老师 #3
    那这个下线操作是在代码中还没有体现嘛 还是我没发现呀
    回复 有任何疑惑可以回复我~ 2023-05-07 19:40:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信