"peerConnection new connection state: connected"
{
"janus": "webrtcup",
"session_id": 3414770196795261,
"sender": 4530256184020316
}
{
"janus": "media",
"session_id": 3414770196795261,
"sender": 4530256184020316,
"type": "audio",
"receiving": true
}
... 1 minute passes
"peerConnection new connection state: disconnected"
{
"janus": "timeout",
"session_id": 3414770196795261
}
"peerConnection new connection state: failed"
请看 糊状物 的完整日志。
我正试图加入Janus服务器上的一个视频室。所有请求似乎都成功了,我的设备在连接因超时而被取消之前,显示了大约一分钟的WebRTC连接状态。WebRTC连接断开似乎与Janus的API断开的WebSocket连接相吻合。
我试着每隔10秒添加一条心跳的WebSocket消息,但这并没有帮助。我是
不知道这里出了什么问题。
我也试过在Janus配置中设置一个STUN服务器,但没有用。同样的问题。
把服务器的日志也加到了pastebin里。
RTFM:Janus的websocket连接需要每<60s进行一次keepalive。
需要指出的一个重要方面是与WebSockets Janus通道的keep-alive消息有关。一个Janus会话只要在60秒内没有不活动,就会保持活力:如果在这个时间段内没有收到消息,会话就会被服务器撕掉。正常的会话活动通常足以防止这种情况发生;对于更长时间的消息不活动,在普通的HTTP上,会话通常是通过常规的长轮询请求来保持活力的,只要会话是活动的。当使用WebSockets时,这种帮助显然是不可能的,因为在WebSockets中,发送请求和接收事件和响应都使用单一通道。出于这个原因,一个用于保持Janus会话活力的临时消息应该定期被触发。链接.