我能否使用JavaScript(客户端)创建一个WebSocket服务器?

9
我刚才看到Websockets参考 MDN文章中提到:

WebSocketServer

用于打开一个新的WebSocket服务器。所需信息为(端口,来源,位置)。

那么这是否意味着我可以在客户端创建一个websocket服务器?
如果是这样的话,这是否意味着我可以将这个……(每个箭头表示一个websocket连接)

enter image description here

...变成这样?

enter image description here

但是,浏览器有没有不需要任何路由器/防火墙配置就能做到这一点的能力?
我该如何使用它?WebSocketServer link已经失效了。我已经尝试搜索,但是没有找到任何信息。

你可以使用JavaScript编写的Node.js实现WebSockets。 - Sir
你的意思是想让你的电脑像本地主机一样成为服务器吗? - Sir
@Dave 但是MDN页面建议在客户端实现WebSocket服务器。不,我不想让我的电脑成为服务器。我希望(好吧,其实只是学术上的)连接到我的服务器的浏览器能够使用WebSockets相互连接。 - Oriol
你需要一个服务器端来连接客户端。 - Sir
我来这里是期望找到相同的答案。 不幸的是,Mozilla似乎是唯一在这方面进行创新的公司。 我真正想看到标准化的两个由Mozilla起草的规范是这个和TCPSocket: https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket - micwallace
显示剩余8条评论
2个回答

3

看起来 WebSocketServer 是 Mozilla 目前正在开发的东西,没有太多支持或类似的东西。我搜索了他们的一些存储库,除了一些普通 WebSockets 的测试代码外,没有找到任何参考资料。

如果你正在寻找某种形式的 P2P WebSockets,我认为现在没有可能实现,除非进行一些工作。就像其他人所说,您需要一个连接的服务器端点,这是最常用的在诸如 Python 和 node.js 等语言中实现的内容。


1
你需要为WebSocket设置一个服务器端点。WebSocket是服务器和客户端之间的开放连接,如果没有服务器,你怎么可能做到这一点呢?我不太明白你试图用这些图表传达什么信息,但你需要在服务器端设置特殊配置来创建WebSocket资源,例如:ws://example.com/resource。因此,你不能随意在两个客户端之间创建WebSocket等。

我很惊讶它可以在客户端完成。但如果不能完成,为什么MDN页面建议有WebSocket服务器的某些客户端实现呢? - Oriol
@Oriol,你可以在客户端使用JavaScript使用WebSocket连接到服务器上的WebSocket资源。 - hesson
请阅读 https://developer.mozilla.org/zh-CN/docs/WebSockets/WebSockets_reference 。你正在谈论 WebSocket 接口(用于连接到 WebSocket 服务器并在连接上发送和接收数据的主要接口)。我正在谈论 WebSocketServer 接口(用于打开新的 WebSocket 服务器)。 - Oriol
@Oriol,似乎没有关于WebSocketServer的任何文档(即使是W3C),除了您提供的MDN链接上的简要描述,因此我倾向于认为这仍然是Mozilla正在开发的技术。就我所看到的,它不是ECMAScript的一部分。 - hesson
我认为WebSocketServer可以在nodejs中使用,但我确定它不会用于客户端Web开发。 - hesson
你可能想要了解WebRTC。你可以在浏览器之间建立本地P2P连接,但是在互联网上仍需要一个名称服务器。 - Dominic Cerisano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接