条件结构流程图
2019-10-08 14:41:24 0 举报
聊天室流程图
作者其他创作
大纲/内容
不存储
header不带sid和accessid
服务端根据是否有sid和accessId判断走长连接还是http
存储订阅关系:(1)用作后续用户的发言鉴权 (2)聊天室用户列表逻辑处理
header带sid和accessId
订阅逻辑结束
http订阅
长连接订阅
订阅鉴权
向长连接发sub命令
走http
调用订阅接口
走长连接
订阅聊天室
是否登录
存<sid-channel>存<userId-channel>
已登录
1、存储订阅日志,sid(http)userid+channel2、订阅数+1
未登录
存<userId-channel>
考虑到后续需求,要求客户端:一、长连接服务中:(1)退出聊天室延迟取订;(2)已登录到未登录,需要立马取消订阅后重新订阅(触发订阅鉴权,因为部分聊天室未登录不能旁观,也即是未登录没有订阅权限)(3)登录用户切换,需要立马取订后重新订阅(新的登录用户可能没有订阅权限)(4)未登录到已登录,需要重新订阅(因为维护聊天室的用户列表)二、长连接服务和http服务的切换,需要解订后重新订阅三、http服务中:(1)退出聊天室需要取订;(2)已登录到未登录, 可以不用解订,因为旁观收消息是通过http轮训接口,鉴权是没有判断是否已经登录;(3)登录用户之间的切换,需要取消订阅重新订阅,维护聊天室的用户列表 (4)未登录到已经登录,需要解订后重新订阅(维护聊天室的用户列表)
判断走长连接服务还是http服务
存<sid-channel>
总结就是:客户端在登录状态的切换,登录用户的切换,长连接和http服务间的切换,均需要解订阅后重新订阅;
判断是否有sid是否登录
0 条评论
下一页