Вопрос

Я пытаюсь изучить новую технологию под названием веб-сокеты.У меня работает настройка (pywebsocket как модуль Apache2), и я играю с примерами.http://code.google.com/p/websocket-sample/wiki/samples?ts=1262888726&updated=samples

Меня смущает одно — во всех примерах используется общий файл для отслеживания изменений счетчика сообщений, счетчика пользователей.

Итак, когда я подключаюсь к ws://localhost/chat с двумя браузерами, будут запущены 2 экземпляраchat_wsh.py (обработчики websock).Верно?И все они будут обращаться к файлу/базе данных для подсчета.

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

Например:Пользователь из чата отправляет сообщение - сообщение через веб-сокет попадает в обработчик веб-сокета, который, в свою очередь, передает информацию о получении нового сообщения всем другим экземплярам чата, устраняя, таким образом, необходимость для каждого экземпляра постоянно проверять один общий файл/базу данных.

Надеюсь, я понимаю:)

Это было полезно?

Решение

Я думаю, вы пытаетесь описать многоадресную рассылку UDP.

См. эту ссылку для получения дополнительной информации. Многоадресная рассылка

К сожалению, веб-сокеты работают через TCP, который, как вы обнаружили, используется для соединений «один к одному».

Вы можете посмотреть что-то вроде memcached http://memcached.org/ сделать «низкими накладными расходами» сохранение общего состояния чата

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top