您是否可以通过Web套接字将客户端连接到客户端而无需接触服务器?

时间:2011-11-05 06:21:16

标签: javascript node.js tcp websocket

我不太清楚如何在谷歌搜索:

  • “客户端到客户端websocket连接”
  • “浏览器浏览器websockets”
  • “没有服务器的websockets”

哈哈,有没有办法让浏览器网页上的某人直接与浏览器网页上的其他人进行通信,而无需触及服务器?

我对socket.io非常熟悉,但这需要所有客户端emit消息到服务器,可以broadcast到其他连接的客户端。我不熟悉网络套接字的细节,所以也许有一种方法可以通过服务器发送消息进行通信。

这可能吗?我只是想知道Web套接字功能的范围,你可以采取的限制等等。

5 个答案:

答案 0 :(得分:6)

不是Web套接字,但四年后,现在我们已经进行了浏览器到浏览器的通信! http://www.webrtc.org/

围绕它构建了JS库以使其更容易(例如https://simplewebrtc.com/)。但是,它仍然需要服务器来协调连接
我知道这个问题很古老,但是当我搜索时它出现在Google上,所以它可能会出现给其他人!

答案 1 :(得分:4)

这是不可能的,您必须将服务器放在中间。

答案 2 :(得分:1)

对于接受连接的应用程序,它必须打开服务器端口并侦听传入请求。您不能从浏览器中公开服务器套接字。我不知道你是否可以在applet中公开服务器套接字。但即使可以,您也需要知道其他客户端的IP地址以建立对等连接。

答案 3 :(得分:0)

从技术上讲,当您broadcast,客户端emits到服务器时,服务器会向所有人广播。我不认为这种网络对等连接的当前架构是可能的。

但客户端可能会向服务器发送一条消息,指定另一个客户端ID,然后服务器使用sessions将其发送给其他客户端。

答案 4 :(得分:0)

当你有一个客户端正在侦听websockets(你必须在其他地方进行通信)时,它就变成了一个服务器。