服务端使用云托管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 网关​

开发者服务可以通过域名ws-push.dyc.ivolces.com访问抖音云 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 }

下推直播小玩法指令​

当开发者通过直播玩法开放SDK能力接入抖音云时,需要通过该接口来向抖音云网关发送直播玩法指令的推送需求:​
    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_idenv_id是否正确传递且是否匹配;​
    10011,请提交工单进行能力申请,在申请使用的能力一栏中选择“自定义域名支持websocket”;​
    其余情况,请提交对应技术工单或者在对接群中咨询排查;​