首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tokbox :如何从服务器端断开会话的所有客户端?

Tokbox :如何从服务器端断开会话的所有客户端?
EN

Stack Overflow用户
提问于 2020-03-21 20:46:04
回答 2查看 609关注 0票数 0

我正在试图终止服务器端的所有Tokbox连接。我有来自客户端的终止连接的逻辑,但是,客户端可能无法正确断开连接(网络问题、突然的应用程序终止等)是不可靠的。

我知道forceDisconnect选项带有来自SDK或REST的connectionId。但是,我找不到从服务器端列出来自sessionId的所有打开连接的选项。

我也知道,我可以等会议结束。(如何断开会话上的所有连接?)

但是,等待令牌过期(或在Tokbox端终止会话)成本要高得多,特别是在使用自动存档选项的情况下。如果没有显式终止会话,您将收到长达1小时的存档账单。

总之,当令牌盒会话结束时,我要做的是

  • 客户端将尝试断开自己的连接(已完成)
  • 如果客户端由于某种原因无法执行#1,服务器将列出所有活动连接。
  • 在#2中的每个连接上调用forceDisconnect
EN

回答 2

Stack Overflow用户

发布于 2020-03-28 20:41:58

OpenTok开发人员在此为您辩护。

@柚子在这条正确的轨道上。最好的方法是使用流监控网钩

该web钩子将发送事件到您的服务器上的streamCreatedstreamDestroyed事件。有效载荷将类似于:

代码语言:javascript
复制
{
    "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

票数 0
EN

Stack Overflow用户

发布于 2020-05-18 13:18:10

我们也有同样的问题,forceDisconnect只接受ConnectionId作为参数。但是有了serverSDK你唯一能得到的就是StreamIds..。

我们的方法是使用会话监视来获取connectionsIds

请参阅https://tokbox.com/developer/guides/session-monitoring/

也许您可以听这个钩子,并将connectionIds接收到的数据存储在数据库中。

不是最好的解决办法,但也许是一种方法

另一种解决方案可以是断开用户客户端的连接:

https://tokbox.com/developer/guides/moderation/js/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60793069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档