Ken*_*ith 6 signalr webrtc xsockets.net
这是我提出的另一个问题的后续行动,但有更准确的信息.
我有两个基本相同的Web页面演示WebRTC,一个使用XSockets作为后端信令层,一个使用SignalR作为后端信令层.
这两个后端基本相同,只是在它们(显然)有不同的方式将数据发送到客户端的点上有所不同.同样,两个客户端上的TypeScript/JavaScript WebRTC代码完全相同,因为我已经抽象出了信令层.
问题是XSockets站点工作一致,而SignalR站点失败(大多数是一致的,但并非完全).通常它在调用时失败peerConnection.setLocalDescription(),但它也可能无声地失败; 或者它(有时)甚至可以工作.
您可以在此处查看两个不同的页面:
XSockets网站:http://xsockets.demo.alanta.com/
SignalR网站:http://signalr.demo.alanta.com/
两者的源代码位于https://bitbucket.org/smithkl42/xsockets.webrtc,xsockets分支上有XSockets版本,分支上有SignalR版本signalr.
所以我的问题是:有没有人知道为什么使用一个信号层而不是另一个信号层会对WebRTC产生任何影响?例如,一个或另一个发回Unicode字符串而不是ANSI吗?或者我误解了这个问题,真正的区别在于其他地方?
弄清楚了。事实证明,SignalR 1.0 RC1 有一个错误,会将字符串中的任何“+”更改为空格。SDP 中的行如下所示:
a=ice-pwd:qZFVvgfnSso1b8UV1SUDd2+z
正在变成这样:
a=ice-pwd:qZFVvgfnSso1b8UV1SUDd2 z
但由于并非每个 SDP 的关键行上都有“+”,因此有时它会起作用。一切都解释清楚了。
该错误已报告给从事 SignalR 工作的优秀人员(请参阅https://github.com/SignalR/SignalR/issues/1194),同时,一个简单的encodeURIComponent()围绕decodeURIComponent()有问题的字符串修复了该错误。
| 归档时间: |
|
| 查看次数: |
3768 次 |
| 最近记录: |