Архитектура Websocket Server - PullRequest
       5

Архитектура Websocket Server

1 голос
/ 10 сентября 2011

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

"ws://<%= Request.Url.Host %>:<%= WebSocketPort %>/sample"

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

var ss = new WebSocket('ws://<%= Request.Url.Host %>:<%= SecureWebSocketPort %>/server');

var gs = new WebSocket('ws://<%= Request.Url.Host %>:<%= SecureWebSocketPort %>/games');

var cs = new WebSocket('ws://<%= Request.Url.Host %>:<%= SecureWebSocketPort %>/chat');

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

Есть какие-нибудь мысли о том, как можно разделить функциональность, как описано выше?

1 Ответ

0 голосов
/ 10 сентября 2011

То, что вы описываете - это действительно разные каналы и типы сообщений для одного и того же общего приложения.Я думаю, что более подходящим (и эффективным) решением было бы установить одно соединение WebSocket с одним URL-адресом, а затем определить свои собственные сообщения и управление сеансами.

Если Socket.IO являетсяВариант для вас, есть множество примеров и рецептов для такого рода вещей.Поищите в Google «Socket.IO chat», «Socket.IO session», «Socket.IO авторизация» и т. Д. Socket.IO wiki , вероятно, действительно хорошее место для начала.

Даже если вы не используете Socket.IO, вам все равно, вероятно, потребуется одно соединение с вашими собственными сообщениями и управлением сеансами.Для такого рода вещей, вероятно, стоит использовать сообщения JSON (поскольку пропускная способность для шахмат / чата не будет проблемой).Большинство языков имеют действительно простую сериализацию / десериализацию JSON для собственных типов данных.

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