为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用websocket实现非事件驱动的推送信息?

如何使用websocket实现非事件驱动的推送信息?

PHP
幕布斯6054654 2019-03-10 03:31:25
我的即时推送服务包含禁止多端重复登录,即已登录用户在其它端再次登录时,则T原来登录的下线。websocket如何实现?假设前后登录都不在一台服务器上,这个如何做通知机制来触发推送T人下线信息?,服务端用swoole,node.js都可以。 比如用户登录后与A服务器建立连接,但用户又在另一端登录,B服务器接收到请求了,这时如何实现把A服务器上的连接T掉?使用事件机制实现不了了。因为事件监听不了,不在同一台服务器上?
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

首先客户端创建成功,向服务的发送建立连接请求。经过三次握手,连接建立成功。服务端把所有链接保存到一个集合中。
客户端在创建链接成功后,向服务的发送数据,进行用户登录。服务的接收到登录事件,登录用户,取到uid。把登录成功的链接放到一个map中,key是uid,在放进去之前可以判断下key是否存在,存在就发送通知给这个key对应的客户端链接。

查看完整回答
反对 回复 2019-03-18
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我觉得这完全是登录验证的事情啊,用户登录完服务器授权一个token,在另一个地方登录则依然授权一个新的token,不过服务器只维护最新的token,而用户在登录状态下发起的后台服务器调用不就是验证这个token是不是合法,不合法自然调用不了接口,这时候服务器告诉前端登录不通过需要重新登录,前端收到后则直接跳转到登录页面,这不就是所谓的T人下线。

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 513 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信