默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK如何实现服务端和MobileIMSDK-Web端的互踢
问题描述:在移动端登录一个用户A,在web端登录用户B、C

实现了app和web的互通,正常都能接到消息

这个时候B用户在没有退出web端的情况下,又登录了移动端,B用户这时在移动端只能接收到A用户发的消息,在web端只能接收到C用户发的消息

有没有什么机制,当B用户在移动端登录的时候能通知web端让B用户下线呢?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
评论 6
其实,B用户同时登陆了移动端和手机端,这对于用户来说,是个很明确的个人行为,因为消息只有一份,要么移动端收到要么web端收到,这也能说的通。

但如果要实现跨端互通的话,你可以单独加一条指令,app这连登陆成功的时候,给web那么发一条踢出指令,web那边的服务端来决定:如果b已经在web在线了就向它发指令并由客户端自已解析并退出、不在线就什么也不用什么。反之亦然。

这种跟屏幕跨机器的互踢,在集群里、异构系统里,实现起来都需要动多一些注意。

APP端的踢出,你可以看看这个帖子里的讨论:《[已回复] 求教MobileIMSDK实现多端登陆互踢功能的疑问
引用:JackJiang 发表于 2018-04-12 13:07
其实,B用户同时登陆了移动端和手机端,这对于用户来说,是个很明确的个人行为,因为消息只有一份,要么移 ...

ok,了解了,
引用:JackJiang 发表于 2018-04-12 13:07
其实,B用户同时登陆了移动端和手机端,这对于用户来说,是个很明确的个人行为,因为消息只有一份,要么移 ...

在服务端发了一条typeu=-2消息给web端,应该是告诉web服务端让该用户下线,应该在哪个方法上进行处理呢?

qqqq.png (29.61 KB, 下载次数: 1556)

qqqq.png
引用:401523591 发表于 2018-04-12 17:46
在服务端发了一条typeu=-2消息给web端,应该是告诉web服务端让该用户下线,应该在哪个方法上进行处理呢?

你这是to “123”这个用户的,那么在“123”这个用户的浏览器端的main2.js的代码里showChatMessage函数里就会收到你发的内容,如果你正在用的demo代码,那么会在如下图所示的代码里捕获到你刚发的东西:
[已回复] MobileIMSDK如何实现服务端和MobileIMSDK-Web端的互踢_1.png
[已回复] MobileIMSDK如何实现服务端和MobileIMSDK-Web端的互踢_2.png

下面这个图是另一个商业项目中的例子,你可以看到showChatMessage函数里通过区分typeu字段来进一步处理你定义的业务逻辑:
[已回复] MobileIMSDK如何实现服务端和MobileIMSDK-Web端的互踢_3.png

应该能看懂吧?

总之一句话:MobileIMSDK-Web从sdk层可以保证把Protocal这个协议包送达到目的地,但UI界面上如何解读它,就看你的业务层代码来解读就完事了!
引用:JackJiang 发表于 2018-04-12 19:40
你这是to “123”这个用户的,那么在“123”这个用户的浏览器端的main2.js的代码里showChatMessage函数里 ...

好的,谢谢啦,明白了,就是让这条消息在显示之前我们对它处理,对吧
引用:401523591 发表于 2018-04-13 09:12
好的,谢谢啦,明白了,就是让这条消息在显示之前我们对它处理,对吧

对的
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部