mqtt.js可以将client和subscribe,message分开写,写的时候也要注意,先说下思路
- 当用户刚进入系统,这个时候,查找storage中是否有用户信息
- 如果有,则直接使用mqtt.js直接连接,创建client,把client赋值给全局变量
- 如果没有,跳到login页面,登录成功后,创建client,并将client复制给全局变量
- 加入现在在客服页面,客服页面应subscribe一个topic,此topic为用户的userId
- 这样,相当于订阅了一个userId的主题,客服可以连接多个topic,进行聊天。
- 把client和on message分开来处理,最大的好处就是message在哪个页面就处理哪个页面的消息,以免造成消息处理混乱
注意点:
7. topic唯一,一般用用户id就唯一了
8. 当应用停止时,比如用户息屏,这时应监听这个事件,将client end掉
9. 然后应用启动时,自然就启动了
10. 为了避免发生,应用一关闭就启用,导致client刚建立的就被关掉了,应在connect时,使用setTimeOut延时启用,subscribe时也一样,延时启用。
如何做到不延时的方法目前还没想出来,暂时先这样