野火IM 多端登录的处理

野火IM使用的是类邮箱协议,采用通知拉取的方式,因此可以非常完美的支持多端登录,可以像邮件客户端一样启用任意多个客户端。但在某些场景下,多个客户端登录反而是客户不期望的,所以我们加了下面这个开关

# 是否支持多端登录
server.multi_endpoint false

当开关打开时,可以由任意平台登录任意多个客户端;当开关关闭时,每个平台只能登录一个客户端,不同平台可以同时在线。

注意平台分为3类,移动平台包括iOS和安卓,PC平台包括Windows、Mac和linux桌面,Web平台就是运行在浏览器上的客户端。

1. 实现逻辑

所有客户端登录都需要getToken这个API来生成token,生成token时会为这个客户端生成session。getToken方法需要传入对应的客户端类型,这样就能根据这个类型检查已经存在的session,踢掉那些需要被踢掉的客户端。被踢掉的客户端则会回到其登录界面。

2. 容易出现的问题

由于踢掉客户端是根据getToken时传入的类型进行判断的,因此必须要确保传入的是正确的类型。

3. 多包名的问题

需要注意多端互踢仅限于在同一个包名下,如果两个移动端使用不同的包名,则可以同时登录。如果您需要确保仅同时只有一个移动端登录,则要确保所有移动平台都使用相同的包名。如果你有不同应用端,比如司机端和乘客端需要同时在线,可以使用不同的包名即可。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2022-08-29 09:42:41

results matching ""

    No results matching ""