Можете ли вы подключить клиента к клиенту через веб-сокеты, не касаясь сервера? - PullRequest
3 голосов
/ 05 ноября 2011

Я не совсем знаю, как искать это в Google:

  • "соединения клиента с клиентом"
  • "браузер с браузером"
  • "websockets без сервера"

Ха-ха, есть ли способ, чтобы кто-то на веб-странице в браузере мог напрямую общаться с другим человеком на веб-странице в браузере, не касаясь сервера?

Я очень хорошо знаком с socket.io , но для этого требуется, чтобы все клиенты emit отправляли сообщения на сервер, которые могут broadcast отправлять их другим подключенным клиентам.Я не знаком с деталями веб-сокетов, так что, возможно, есть способ общаться без отправки сообщений через сервер.

Возможно ли это?Я просто хочу знать сферу функциональности веб-сокетов, пределы, которые вы можете взять их, и т. Д.

Ответы [ 5 ]

6 голосов
/ 16 октября 2015

Не веб-сокеты, но четыре года спустя, и теперь у нас есть связь между браузерами!
http://www.webrtc.org/

Есть библиотеки JS, построенные вокруг него, чтобы упростить его (например, https://simplewebrtc.com/).. Однако для управления соединениями по-прежнему требуется сервер.

Я знаю, что этот вопрос древний, но он появился в Google, когда я искал, так что, скорее всего, будет для других!

4 голосов
/ 05 ноября 2011

Это невозможно, сервер должен быть посередине.

1 голос
/ 05 ноября 2011

Чтобы приложение могло принимать соединения, оно должно иметь открытый порт сервера и прослушивать входящие запросы.Вы не можете открыть сокет сервера из браузера.Я не знаю, если вы можете выставить сокет сервера из апплета.Но даже если бы вы могли, вам нужно было бы знать IP-адрес другого клиента для установления однорангового соединения.

0 голосов
/ 06 сентября 2013

В тот момент, когда у вас есть клиент, прослушивающий веб-сокеты (что вам нужно сделать, чтобы общаться), он становится сервером.

0 голосов
/ 05 ноября 2011

Ну, технически, когда вы broadcast, клиент emits на сервер, сервер вещает всем. Я не думаю, что при нынешней архитектуре одноранговых веб-соединений подобное возможно.

Но возможно, что клиент отправляет сообщение на сервер с указанием другого идентификатора клиента, а сервер отправляет его другим клиентам, используя сеансы .

...