【问题标题】:SignalR WebRTC WebSocket is already in CLOSING or CLOSED stateSignalR WebRTC WebSocket 已经处于 CLOSING 或 CLOSED 状态
【发布时间】:2014-09-10 06:49:47
【问题描述】:

我想测试最简单的 SignalR 和 WebRTC 实现。我将代码托管在https://github.com/foyzulkarim/WebRtc

我制作了两个不同的文件“index.html”和“index1.html”。 在 index.html 中,我通过 signalr 播放了一个视频文件,效果非常好。但是当我用网络摄像头的提要替换现有的视频文件时,它开始出现错误。

运行几秒钟后,我开始收到此错误 “WebSocket 已处于 CLOSING 或 CLOSED 状态。” 我尝试限制但没有更改,仍然收到错误.知道为什么会发生吗?

错误图片

您可以查看视频我http://1drv.ms/1meM1OI

【问题讨论】:

  • PeerConnection 中的什么时候(根据您的代码,我假设 WebRTC 中存在对等连接)您会收到错误消息吗?
  • 我没有任何对等连接。我得到视频标签的提要,然后将其显示到画布上。然后从画布中获取 dataUrl。然后将其发送给信号器进行广播。问题是,这种方法适用于视频文件,但不适用于网络摄像头。

标签: websocket html5-canvas html5-video signalr webrtc


【解决方案1】:

消息大小似乎是这里的关键问题。

在您的项目中,每帧视频大约 40k,但每帧 cam 超过 140K。 实际上,在 index.html 中播放视频时,大约 20s 后,会有几帧大于 70k,这也会给你同样的错误。

我尝试发送一些长字符串消息作为测试,但当消息长于某个值时,我确实会收到错误消息。但是,我无法在文档中找到消息长度或消息密度的明确限制。

【讨论】:

  • 我会根据你的建议尝试一些作品。
【解决方案2】:

我在 Glassfish 4 上使用端口 8080 运行 websocket 应用程序服务器时遇到了类似的问题,在我将端口更改为另一个它可以工作(例如:8887)后,这可能是在找到端口 8080 的永久解决方案之前的临时解决方案。

编辑:找到根本原因,我的防病毒软件使用了 websocket 使用的端口 80。如果您发现类似问题,请检查您的防病毒/其他应用程序端口。

【讨论】:

  • 服务器端的杀毒软件?还是客户端?谢谢,
  • 其实我不太确定,因为它正在开发中(客户端和服务器位于同一台电脑上),抱歉...
猜你喜欢
  • 2016-09-09
  • 2019-04-13
  • 1970-01-01
  • 2018-07-06
  • 2020-05-30
  • 1970-01-01
  • 2020-04-19
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多