服务端使用云托管webSocket
收藏
我的收藏介绍
抖音云为开发者提供了 WebSocket 的功能。当前支持小程序与抖音云之间通过 WebSocket 协议通信,抖音云与开发者服务之间通过 HTTP 协议进行消息的触达和业务信息的查询,如图所示。
使用说明
小程序&小玩法使用
开发者服务端使用
开发者服务处理建连&断连&上行消息的请求
开发者服务需要提供一个后端 HTTP 接口以接收处理小程序的建连、断连、上行消息的请求。
接口的路径在小程序建连时进行传入(对应
Cloud.connectContainer
中的path
参数)。建连请求
- •method:GET
- •path:
path
- •header:
X-tt-event-type
=connect断连请求
- •method:GET
- •path:
path
- •header:
X-tt-event-type
=disconnect上行消息请求
- •method:POST
- •path:
path
- •header:
X-tt-event-type
=uplink请求开发者服务的公共 header
header | 备注 |
X-TT-APPID | 小程序的APPID |
X-TT-ENVID | 小程序的ENVID |
X-TT-SERVICEID | 小程序的SERVICEID |
X-TT-OPENID | 用户的OPENID |
X-TT-SESSIONID | WebSocket的连接ID |
X-FORWARDED-FOR | 客户端的访问地址 |
开发者服务访问抖音云 WebSocket 网关
下行消息推送
- •method:POST
- •path:/ws/push_data
- •header:
header | 备注 | 举例 |
X-TT-WS-SESSIONIDS | sessionid的列表,单次请求不能超过5个;与X-TT-WS-OPENIDS参数二选一 | [sessionid_1,sessionid_2,sessionid_3] |
X-TT-WS-OPENIDS | openid的列表,单次请求不能超过5个;与X-TT-WS-SESSIONIDS参数二选一 | ["openid_1","openid_2","openid_3"] |
- •response:
{ "data": { "failed_session_id_list": [] }, "err_msg": "success", "err_no": 0 }
下行消息组推送
- •method:POST
- •path:/ws/group/push_data
- •header:
header | 备注 | 举例 |
X-TT-WS-GROUPNAME | 推送的组的Name,必填 | "group_name_1" |
X-TT-WS-GROUPVALUE | 推送的组的Value,必填 | "group_value_1" |
- •reponse:
{ "data": "", "err_msg": "success", "err_no": 0 }
下推直播小玩法指令
- •method:POST
- •path:/ws/live_interaction/push_data
- •header:
header | 备注 | 举例 |
Content-Type | | application/json |
X-TT-WS-OPENIDS | 要推送的主播openid的列表,单次请求不能超过5个; | ["openid_1","openid_2","openid_3"] |
- •body:
{ "msg_id": "123456781", //必填,string类型,玩法指令id,即开发者服务器收到的玩法指令中的msg_id字段 "msg_type": "live_comment", // 必填,玩法指令类型,即开发者服务器收到玩法指令中的msg_type字段 "data": "xxxxx", // 指令内容数据 "extra_data": "xxx" // 扩展字段,开发者可自定义 }
- •response:
{ "data": { "failed_open_id_list": [] }, "err_msg": "success", "err_no": 0 }
查询连接信息
- •method:GET
- •path:/ws/query_info
- •header:
header | 备注 | 举例 |
X-TT-WS-SESSIONIDS | sessionid的列表,单次请求不能超过5个;与X-TT-WS-OPENIDS参数二选一 | [sessionid_1,sessionid_2,sessionid_3] |
X-TT-WS-OPENIDS | openid的列表,单次请求不能超过5个;与X-TT-WS-SESSIONIDS参数二选一 | ["openid_1","openid_2","openid_3"] |
- •reponse:
{ "data": { "xxx(sessionID)": { "AppID": "xxxxx", "ServiceID": "xxxxx", "EnvID": "xxxxx", "BackendPath": "xxxxx", "SessionID": xxx, "OpenID": "xxxx" } }, "err_msg": "success", "err_no": 0 }
查询组信息
- •method:POST
- •path:/ws/group/query_info
- •header:
header | 备注 | 举例 |
X-TT-WS-GROUPNAME | 推送的组的Name,必填 | "group_name_1" |
X-TT-WS-GROUPVALUE | 推送的组的Value,必填 | "group_value_1" |
- •response:
{ "data": { "sessionId_list": [ xxx ], "openId_list": [ "xxxx" ] }, "err_msg": "success", "err_no": 0 }
生成websocket连接ID
- •作用:客户端基于自定义域名地址使用抖音云网关websocket能力时,需要先向服务端获取该连接ID,用作身份校验。
- •method POST
- •path:
/ws/get_conn_id
- •header:
Content-Type | application/json |
- •请求体:
{ "service_id": "xxxx", // 必传,服务id "env_id": "xxxx", // 必传,环境id "token": "xxxxx", // 非必传,弹幕小玩法的直播间信息token,传递后,websocket后续请求都会携带对应的直播间信息 }
- •响应:
{ "err_no": 0, "err_msg": "success", "data": "{\"conn_id\":\"4392960770\"}" }
- •错误码
error_no
:- ◦10010,参数错误,请检查
service_id
、env_id
是否正确传递且是否匹配;- ◦10011,请提交工单进行能力申请,在申请使用的能力一栏中选择“自定义域名支持websocket”;
- ◦其余情况,请提交对应技术工单或者在对接群中咨询排查;