Как я могу сделать соединение сокета клиент-клиент (браузер)? - PullRequest
5 голосов
/ 05 октября 2010

Я думал о создании клиент-клиентской программы. Но я хочу использовать для этого посредника, которому помогает сервер, который может установить это соединение.

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

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

Я изучаю это и пытаюсь найти способ сделать это. Все идеи приветствуются: D.

Ответы [ 2 ]

4 голосов
/ 05 октября 2010

Вы можете иметь пассивный сокет в апплетах Java, Flash и других плагинах браузера, но в целом это может быть проблематично для общедоступных веб-приложений.

Прежде всего, будет трудно пройти через брандмауэры и т. Д., И вам нужно будет зависеть и писать код для плагина браузера, который реализует API сокетов, и связывать его с JavaScript.Если вас интересуют некоторые решения, вы можете проверить следующую публикацию переполнения стека:

Традиционный подход для одноранговой связи между браузерами заключается в том, чтобы ваш сервер выполнял роль шлюза для всех соединений.Браузеры инициируют соединение (либо с помощью WebSockets , либо с XMLHttpRequest ) и постоянно поддерживают активное соединение с сервером, восстанавливая его, если оно прервано.Поскольку серверное приложение всегда найдет открытое TCP-соединение со всеми подключенными браузерами, оно может легко перенаправлять сообщения всем клиентам.

0 голосов
/ 25 ноября 2010

Как говорит Даниэль, вам будет очень трудно сделать в браузере настоящую одноранговую сеть (в виде Skype и т. Д.), И это, безусловно, невозможно без использования плагинов. И даже Skype и т. Д. Полагаются на сервер, выступающий в качестве шлюза, когда прямое соединение не может быть установлено (из-за брандмауэров и т. Д.).

Таким образом, вам действительно необходимо иметь сервер шлюза независимо от наличия нескольких вариантов. Попробуйте поискать здесь «комета». Некоторые опции, с которыми я играл, включают Orbited (http://orbited.org/) и Hookbox (http://hookbox.org/)), но есть много других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...