2015-01-07 5 views
0

Socket.IO, я либо передумал, либо просто не понимаю, как это работает. Вероятно, последнее. Может кто-то, пожалуйста, помогите мне.Socket.io - Ретрансляция сервера, обмен сообщениями между клиентом

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

Что неясно, где все это происходит, сервер или клиент, или и то, и другое? Мои главные вопросы:

  • Нужно ли серверу передавать все для всех клиентов?
  • Может ли клиент отправить сообщение непосредственно ко всем другим клиентам (без сервера , имеющего ретранслировать его)
  • Может ли клиент отправить сообщение непосредственно к конкретному клиенту?

Я бы очень очень благодарен за любую помощь в разъяснении мне это.

ответ

0
  1. Серверу не нужно передавать все на клиентов. Именно здесь у вас есть возможность отправить обратно отправителю, всем клиентам или всем клиентам, кроме отправителя.
  2. Нет, клиент всегда отправляет сообщение на сервер.
  3. Нет, по той же причине, что и выше, вы можете отправить сообщение от оригинального клиента, на сервер, к определенному конкретному клиенту, но вам придется перепрыгивать через сервер.
+0

Благодарим вас за руководство. Я понимаю, что вы говорите, однако я не могу найти никаких демонстраций или примеров, которые показывают, что клиенты, излучающие без сервера, должны его попугать, это просто кажется излишним. ** Server.js ** [http://socket.io/get-started/chat/](http://socket.io/get-started/chat/) 'io.on (' соединение (connection), функция (сокет) { socket.on ('сообщение чата', функция (msg) { io.emit ('сообщение чата', msg); }); }); ' –

+0

То есть цель сервера в этой ситуации, хотя - для передачи сообщений от одного клиента другим. По общему признанию, приведенные примеры очень просты (по назначению), поэтому, вероятно, они кажутся настолько избыточными. Даже одноранговые соединения обычно требуют наличия центрального сервера для регистрации и обнаружения клиента (или, по крайней мере, это мое понимание). Взгляните на peerjs, если вы хотите попробовать обходить типичный сервер. – dvlsg

Смежные вопросы