gpt4 book ai didi

signalr - 使用 SignalR 作为 WebRTC 的服务层

转载 作者:行者123 更新时间:2023-12-02 15:13:19 25 4
gpt4 key购买 nike

这是 another question 的后续内容我问过,但有更准确的信息。

我有两个基本相同的网页来演示 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()围绕有问题的字符串修复了它。

关于signalr - 使用 SignalR 作为 WebRTC 的服务层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com