Ваш вопрос на самом деле не относится к конкретным причалам или веб-сокетам.
Веб-сокеты просто обеспечивают механизм транспорта для вашего веб-браузера для связи с сервером - что настраивается на этом транспорте и как сервер управляет информацией.полностью отделен от веб-сокета.
Во-первых, если вы еще не читали его, прочитайте эту статью: http://cometdaily.com/2010/03/02/is-websocket-chat-simple/
Во-вторых, рассмотрите возможность использования cometd , чтобы сделать этопроще - версия 2 (в настоящее время в бета-версии) поддерживает веб-сокеты.
Что касается ваших вопросов - вам нужно сделать 2 вещи (Cometd может помочь с этим)
1,Определите протокол
Определите протокол обмена сообщениями поверх веб-сокетов.Веб-сокеты просто предоставляют способ отправки кусков данных, они не определяют, что означают эти данные.Вам нужно создать что-то, что делает это, поэтому у вас есть сообщения, которые отправляются с клиента на сервер, например.
- ПОДКЛЮЧИТЕ «пользователя»
- STILL_ALIVE
- JOIN_ROOM "room1"
- LEAVE_ROOM
- GET_USER_LIST
- SEND_MESSAGE "message"
И тогда вам нужны сообщения с сервера на клиент
- RECEIVE_MESSAGE "user" "message"
- RECEIVE_USER_LIST "room1"
Вам необходимо найти надежный способ отправки этих данных через веб-сокет,Вы можете изобрести свой собственный простой протокол (как в примере с чатом Jetty), вы можете использовать каналы JSON, XML или CometD.
2.Состояние на стороне сервера
Если у вас работает простой чат, то вы, должно быть, начали с этого, но вам нужен еще один способ отслеживания
- как их зовут
- к какому разъему они подключены
- в какой комнате они находятся
В зависимости от того, насколько сложной станет ваша система, вы можете хранить ее в 1 большом синглтоне на сервере.