0

我最近开始研究浏览器间的通信,并对 webRTC 特别感兴趣。我目前正在尝试使用此处提供的面向初学者的库通过数据通道构建文件传输:

我的应用程序在这里可见:https ://shirase-ttt.jit.su/Dropzone.html

它在放置文件时进行基本的文件传输。问题是,它可以在您自己浏览器的 2 个选项卡之间工作(仅 Chrome 测试,但位置不同)。但是,一旦您在 2 个不同的互联网连接/位置之间尝试它,它就会停止工作。通道已建立,但文件未发送。我不知道我应该从哪里开始寻找,代码看起来很好,因为它在本地工作(测试自己,请参阅下面的步骤)但我不能发誓我没有犯错,有人能帮忙吗?

测试步骤:

  • 在浏览器的 2 个选项卡/2 个浏览器上打开https://shirase-ttt.jit.su/Dropzone.html 。

  • Tab1 创建一个通道名称并单击连接。

  • Tab2 输入相同的频道名称,点击加入。

  • 几秒钟后,您应该会在控制台中看到所有频道信息。从这一点开始,您可以在任何客户端的框中放置一个小文件,并通过第二个客户端的控制台看到它正在下载。我使用约 100kb 的图像,dl 大约需要 15 秒。这是相当令人印象深刻的。

然后我和朋友远程测试。建立通道后。您看到文件正在发送,但没有收到任何内容。

编码 :

客户端: https ://github.com/xShirase/RTC-Exploring/blob/master/Dropzone.html

服务器: https ://github.com/xShirase/RTC-Exploring/blob/master/ttt.js

在服务器上,只有第 1-34 行是相关的,其余的用于不同的作品。是的,我试过把它脱光。不,它不会改变任何东西。

欢迎任何想法。谢谢。我认为这可能是托管问题,也许是 https redir 搞砸了?我不知道,说实话。这就是我在这里写的原因。

另外,我还有一个要求。目前,网络正在以多种方式发生革命。我们有机会发现自己处于曲线的最开始,一切都还没有完成,但已经做足了一些乐趣。所以我想组建一个团队,他们不是专业人士,而是渴望尽可能多地学习并尽其所能推动正确方向的人。我个人的观点是:对套接字的良好理解,良好的脚本技能,我猜不够专业,还有很多想法。我想探索 webRTC,随着它的发展正确理解它,并参与到这种发展中。我敢肯定我不是唯一一个,所以对于任何有兴趣和类似动机的人,让我们通过小组工作来更快地学习。联络我。

免责声明:这篇文章的第二部分可能不在正确的网站上,我不确定。但它是可以看到的,这就是我正在寻找的。没有任何专业或任何类型的义务,只有代码、测试想法之类的东西。如果有人对此部分有疑问,请编辑、标记、否决,或者先谈谈;-)

谢谢。

4

1 回答 1

1

这是NAT穿越问题。DataChannel.js 使用了“”STUN。现在,它已修复,因为也使用了两个 TURN 服务器。如果它仍然不适合您;尝试使用“你自己的”TURN 服务器。

STUN = {
    url: !moz ? 'stun:stun.l.google.com:19302' : 'stun:23.21.150.121'
};

TURN1 = {
    url: 'turn:73922577-1368147610@108.59.80.54',
    credential: 'b3f7d809d443a34b715945977907f80a'
};

TURN2 = {
    url: 'turn:webrtc%40live.com@numb.viagenie.ca',
    credential: 'muazkh'
};

iceServers = {
    iceServers: options.iceServers || [STUN]
};

if (!moz && !options.iceServers) {
    iceServers.iceServers[1] = TURN1;
    iceServers.iceServers[2] = TURN2;
}
于 2013-05-23T23:40:24.577 回答