Есть сайт, где люди посредством диалогов общаются между собой. Я пытаюсь организовать это общение, используя Socket'ы. Собственно вопрос: как организовывается множественное соединение сокетов? Понятно, что не получится создать одно соединение для всех.
Есть идея создавать каждой паре пользователей свою комнату и это единственное, что пришло на ум.
> Понятно, что не получится создать одно соединение для всех.
Почему нет ? :)
Если же вы хотите отдельный сокет каждому, то вы ограничены около 64 000 комнат.
плюс куча других проблем.
Можно сделать проще: Websocket
1. делаете серверную часть, которая будет принимать данные от одного клиента, и пересылать их дальше другому
2. делаете клиентскую часть, которая будет работать с этой серверной частью
3. профит.
Спасибо за ваш ответ. Меня смущало, что сокеты не будут знать, куда им идти. То есть сделать так: сокет с клиента отсылает запрос с параметрами, сервер получает, обрабатывает согласно параметрам и отправляет обратно?
Инициализация:
Клиент через вебсокет отправляет пакет: "я такой то, вот мой ключ". Сервер проверяет что такой клиент действительно есть, и подписывает его на получение пакетов от сервера в канал "номер юзера".
Отправка пакета:
Клиент после инициаилизации отправляет пакет через вебсокет "Юзеру 1234 : Привет юзер".
Сервер получает пакет, делает с ним что надо, и отправляет в канал "1234" пакет: "Вам сообщение "привет юзер" от юзера номер 333"
Клиент юзера 1234 получает пакет и выводит его как нужно.
JRazor: посмотрите, что такое websocket. Там можно создавать "каналы" и "комнаты", как угодно. Это вам нужно просто для упрощения отправки данных правильному получателю.