Javascript 未在google chrome webrtc内部清除RTPeerConnection
我正在我的项目中使用webrtc。但当Javascript 未在google chrome webrtc内部清除RTPeerConnection,javascript,webrtc,rtcpeerconnection,Javascript,Webrtc,Rtcpeerconnection,我正在我的项目中使用webrtc。但当rtpeerconnection.iceConnectionState='closed'未从浏览器中删除时(Google Chrome 67.0.3396.99) 我使用了rtpeerconnection.close(),之后我将连接对象设置为null。但它仍然在chrome://webrtc-internals/。问题是,我的应用程序中可能有太多的连接,因此当连接未清除时,我无法在一段时间后创建任何新连接。它在我的应用程序中显示了太多的连接错误。有人能帮我
rtpeerconnection.iceConnectionState='closed'
未从浏览器中删除时(Google Chrome 67.0.3396.99)
我使用了rtpeerconnection.close()
,之后我将连接对象设置为null
。但它仍然在chrome://webrtc-internals/。问题是,我的应用程序中可能有太多的连接,因此当连接未清除时,我无法在一段时间后创建任何新连接。它在我的应用程序中显示了太多的连接错误。有人能帮我解决这个问题吗
感谢对于webrtc,您应该使用websocket服务器,默认情况下浏览器只允许每个客户端的连接数量有限,这不是服务器限制,而是浏览器限制
另外,您可能会看到
rtpeerconnection.iceConnectionState='closed'
,因为您需要构建信令服务器,否则webrtc不会打开连接,websocket是构建信令服务器的常用解决方案,对于webrtc,您应该使用websocket服务器,默认情况下,浏览器只允许限制每个客户端的连接数量,这不是服务器限制,而是浏览器限制
另外,您可能会看到
rtpeerconnection.iceConnectionState='closed'
,因为您需要构建一个信令服务器,或者更明智的webrtc不会打开连接,WebSocket是构建信令服务器的一个非常常用的解决方案,这是我一直关注的Chrome中一个长期存在的问题RTPeerConnection
不要及时收集垃圾。我注意到,随着时间的推移,尤其是在选项卡之间切换时,rtpeerconnection
最终会被垃圾回收
限制似乎是500个连接,所以尽量限制你的连接数量
以下是一些引用此错误的链接:
编辑:
黑客解决方案可能是在iframe中创建连接。我记得当iframe被删除时,连接是GC的。这是我一直关注的Chrome中的一个长期问题
RTPeerConnection
不要及时收集垃圾。我注意到,随着时间的推移,尤其是在选项卡之间切换时,rtpeerconnection
最终会被垃圾回收
限制似乎是500个连接,所以尽量限制你的连接数量
以下是一些引用此错误的链接:
编辑:
黑客解决方案可能是在iframe中创建连接。我记得当iframe被删除时,连接是GC的。我想这是一个功能,可以让你在以后检查连接
当我关闭或重新加载具有连接的选项卡时,它们似乎会立即被删除。可能与Eric Guan提到的iframe技巧起作用的原因相同。我想这是一个功能,可以让你在事后检查连接
当我关闭或重新加载具有连接的选项卡时,它们似乎会立即被删除。可能与Eric Guan提到的iframe技巧起作用的原因相同。当我要关闭连接时,它仍然显示在chrome浏览器的webrtc内部。我的问题是,即使将其设置为null并停止所有引用,它仍然显示关闭的连接。我需要一个解决方案,该解决方案将关闭webrtc的RTPeerConnection,并在我关闭后立即将其从浏览器webrtc内部删除。您需要通过信令服务器发送webrtc数据,您可以使用信令服务器,也可以使用WebSocket构建自己的,根据您的问题,当我要关闭连接时,您似乎只运行webrtc客户端,但它仍然显示在chrome浏览器的webrtc内部。我的问题是,即使将其设置为null并停止所有引用,它仍然显示关闭的连接。我想要一个解决方案,该解决方案将关闭webrtc的RTPeerConnection,并在我关闭它后将其从浏览器webrtc内部删除。您需要通过信令服务器发送webrtc数据,您可以使用信令服务器,或者使用WebSocket构建自己的连接,根据您的问题,您似乎只运行webrtc客户端