我正在试图终止服务器端的所有Tokbox连接。我有来自客户端的终止连接的逻辑,但是,客户端可能无法正确断开连接(网络问题、突然的应用程序终止等)是不可靠的。
我知道forceDisconnect选项带有来自SDK或REST的connectionId。但是,我找不到从服务器端列出来自sessionId的所有打开连接的选项。
我也知道,我可以等会议结束。(如何断开会话上的所有连接?)
但是,等待令牌过期(或在Tokbox端终止会话)成本要高得多,特别是在使用自动存档选项的情况下。如果没有显式终止会话,您将收到长达1小时的存档账单。
总之,当令牌盒会话结束时,我要做的是
forceDisconnect发布于 2020-03-28 20:41:58
OpenTok开发人员在此为您辩护。
@柚子在这条正确的轨道上。最好的方法是使用流监控网钩。
该web钩子将发送事件到您的服务器上的streamCreated和streamDestroyed事件。有效载荷将类似于:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "streamCreated",
"timestamp": 1470258860571,
"stream": {
"id": "63245362-e00e-4834-8371-9397deb3e452",
"connection": {
"id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
"createdAt": 1470257688143,
"data": ""
},
"createdAt": 1470258845416,
"name": "",
"videoType": "camera"
}
}您会注意到,有效负载包括一个stream.connection.id属性。
然后在应用程序中添加一些功能,以了解会话已经结束,并为仍然显示为未销毁的任何流调用forceDisconnect。
发布于 2020-05-18 13:18:10
我们也有同样的问题,forceDisconnect只接受ConnectionId作为参数。但是有了serverSDK你唯一能得到的就是StreamIds..。
我们的方法是使用会话监视来获取connectionsIds
请参阅https://tokbox.com/developer/guides/session-monitoring/
也许您可以听这个钩子,并将connectionIds接收到的数据存储在数据库中。
不是最好的解决办法,但也许是一种方法
另一种解决方案可以是断开用户客户端的连接:
https://stackoverflow.com/questions/60793069
复制相似问题