收集 Tokbox 会话的会话分钟数

Gather session minutes of a Tokbox session

我需要收集上个月所有 tokbox 会话的流式传输总分钟数。基本上类似于 tokbox 提供的计费报告。我不需要它"live",延迟几分钟甚至几个小时都可以接受。

检查员似乎没有 API,我们目前没有存档会话。

我目前的想法是使用 Session Monitoring 事件并收集所有 Stream Destroyed 事件。然后我会将它们存储在某个地方并使用 timestamp - stream.createdAt 作为每个流的持续时间。

乍一看感觉有点脆-我不想报错数字或漏掉什么。我走在正确的轨道上还是有 easier/better 解决方案?

{
    "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
    "projectId": "123456",
    "event": "streamDestroyed",
    "reason": "clientDisconnected",
    "timestamp": 1470258896953,
    "stream": {
        "id": "63245362-e00e-4834-8371-9397deb3e452",
        "connection": {
            "id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
            "createdAt": 1470257688143,
            "data": ""
        },
        "createdAt": 1470258845416,
        "name": "",
        "videoType": "camera"
    }
}

TokBox 支持确认这是一种有效的方式,并且 Session Monitoring 事件足够可靠。因此,我们将继续使用 StreamDestroyed 事件的想法。

很遗憾,这不等于订阅的分钟数。使用事件计算这些应该是可能的,但可能会变得非常复杂。


{
    "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
    "projectId": "123456",
    "event": "streamDestroyed",
    "reason": "clientDisconnected",
    "timestamp": 1470258896953,
    "stream": {
        "id": "63245362-e00e-4834-8371-9397deb3e452",
        "connection": {
            "id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
            "createdAt": 1470257688143,
            "data": ""
        },
        "createdAt": 1470258845416,
        "name": "",
        "videoType": "camera"
    }
}

正确的方法是同时收集流和连接事件。 然后您可以计算每个连接的持续时间,并将这些持续时间汇总为每个会话的流媒体分钟数。