目录
设计
测试
swagger
设计
/**
* 获取推流过程中的bytesSpeed,loss等统计信息
* 方案1:每个app stream 一个线程,定时获取统计信息。当subscribe 时,进行“增加;修改;加入队列”操作。
* 缺点: 占用线程多,每一次有变化frequency的调用来时,可以“删除;增加”线程,切换过多;每一个流占用一个线程,也使得系统资源占用过多
*
* 方案2: 只开一个线程,每一秒运行一次;定时获取所有的app
* stream的统计信息(根据subscribe的频率,每一次run时,根据自身的频率,确定是否触发);
* 然后再根据subcribe的频率,进行判断是否需要更新;
* 优点:开线程少,切换少; 缺点,如果在一个线程里获取的时间过长,会影响下一次的获取。所以计时一个线程每次执行的时间。确保在500ms以内。
*/
其中,对web侧的发送,是使用websocket,其它的都是htttp调用 。
测试
服务端打印:
web端收到消息
{"action":"statMediaInfoMsg","info":{"bytesSpeed":"68268","loss":"0.0","app":"b1dbc69cb0b841579c6d6575a6044018","stream":"dxw3Stream","userid":"c3040e316d1747158a1966205e84b67c"},"messageId":"0w5B8VKP3o"}
swagger
配合日志进行观察