-
Notifications
You must be signed in to change notification settings - Fork 333
信道服务
techirdliu edited this page Nov 20, 2016
·
8 revisions
微信小程序提供了 WebSocket 的通信能力,结合 Wafer 提供的信道服务,开发者可以迅速拥有实时双工的 WebSocket 通信能力。
信道服务共有三个模块参与协作进行通信:
信道服务通信大致有四个时序流程,分别是:建立连接、消息推送及断开连接。
建立连接是通信的第一步。
建立连接步骤如下:
- 小程序客户端向信道服务器申请进行信道连接,如果已经登录,则会在请求头包含
id
和skey
- 业务服务器收到申请请求后
- 如果请求头包含
id
和skey
,会通过会话服务获取用户信息userInfo
- 向信道服务器申请连接地址,并告知信道服务器后续对应的通信地址
receiverUrl
- 如果请求头包含
- 信道服务器返回信道标识
tunnelId
和信道连接地址connectUrl
- 业务服务器调用信道处理器的
onTunnelRequest()
方法通知连接已请求 - 业务服务器返回连接地址到客户端
- 客户端使用连接地址进行 WebSocket 连接后建立起双工 TCP 连接
- 信道服务器在建立连接后,会根据连接的
tunnelId
找到对应的receiverUrl
,通过该地址推送连接消息到业务服务器 - 业务服务器调用信道处理器的
onTunnelConnect()
方法通知连接已建立
建立连接后,微信小程序客户端和信道服务器可以相互推送消息。由于信道服务器只作为通用的 PaaS 服务,其本身不对消息做处理,只是作为消息推送的搬运工,具体消息交由业务服务器处理。
当连接断开或微信小程序客户端请求断开时,信道服务器会向业务服务器推送断开消息。
以下是信道服务通信的时序图:
[ 返回 Wiki 首页 ]
Wafer - 企业级微信小程序全栈方案
如果 Wiki 内容不能解决你的疑惑,欢迎提交 Issue 进行反馈或者加入 QQ 群(216602757)进行讨论