服务端使用云托管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”;
    其余情况,请提交对应技术工单或者在对接群中咨询排查;