我可以使用webrtc在Javascript中编写Web服务器,以便有人可以通过访问像becomeawebserver.com这样的URL(我刚刚编写的示例名称)将其Web浏览器转换为Web服务器吗?
我只是想学习网络rtc,所以我试图找出它的功能
我现在从斯韦特林·姆拉德诺夫那里得到答案:
Webrtc不能用作http服务器,因为无法指定端口且webrtc无法打开TCP连接。 -
答案 0 :(得分:2)
WebRTC使用自己的一组协议(基于RTP,SCTP等),因此您无法使用WebRTC实现传统的HTTP服务器。您可以通过WebRTC数据通道引导HTTP,但这显然完全不同于作为Internet主干的传统HTTP over TCP。但是,如果实现和运行与HTTP不兼容的自己的协议在您眼中作为Web服务器有资格,那么,是的,您可以使用WebRTC实现Web服务器,但是您无法实现HTTP服务器。
要连接到TCP服务器(HTTP服务器也是TCP服务器),您需要做两件事:1。一个IP地址,可以通过DNS解析一个人类可读的名称,如becomeawebserver.com和2.一个端口。
WebRTC并非如此。连接到WebRTC实例要复杂得多,因为WebRTC是在创建时考虑了点对点连接,因此它会自动执行NAT遍历,打孔等操作。所有这些意味着WebRTC实例不仅具有单个IP地址,而且具有多个IP地址。 WebRTC会自动搜索要连接的最佳链接。
要建立WebRTC连接,需要第三方(以信令服务器的形式)。因此,如果您希望客户端只能输入一个人类可读的名称(如becomeawebserver.com)并连接到浏览器转为服务器,那么您必须自己实现解析(DNS不适合,因为webrtc实例有很多预先不知道的地址和webrtc绑定到随机短暂端口)并在两个实例之间进行信令以将它们连接在一起,然后通过WebRTC数据通道直接执行其余的通信。
总而言之:WebRTC使用自己的协议,因此您必须实现和使用自己的HTTP,DNS等版本。如果您有资格成为网络服务器,那么,是的,您可以使用WebRTC实现网络服务器。
答案 1 :(得分:1)
'是' - 我问自己同样的问题,并找到了+PeerServer,一个斯坦福大学的高年级学生项目。据我了解,它是一个javascript库,它将webrtc数据流抽象并转换为HTTP。
始发服务器只处理点对点握手,并从那里开始浏览器'服务器的行为与传统服务器的预期相同。
我仍然围绕着这个令人敬畏的问题,所以请亲自看看这个项目。我认为它承认了之前受访者的限制,然后解决了这些限制。