Как отслеживать клиентов с помощью веб-сокетов

С введением HTML5 разработчики Websockets могут использовать легкую, но мощную модель двусторонней связи между клиентом и сервером. Связь, инициированная сервером, является новым дополнением в этой модели. Сервер больше не просто отвечает на HTTP-запросы. Принимая во внимание, что клиенту необходимо взаимодействовать только с одним адресом сервера, серверу теперь необходимо отслеживать открытые соединения сокетов таким образом, чтобы он мог инициировать связь с надлежащим клиентом (-ами).

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

См. Пример ниже с библиотекой веб-сокетов ws Node.js:

Вышеупомянутый объект «Клиенты» хранит все объекты подключения к открытым сокетам с соответствующими именами пользователей в виде пары ключ / значение.

Сервер полагается на начальное сообщение от клиента с именем пользователя. После подключения и первого сообщения экземпляр «клиенты» сохраняет объект клиента как значение ключа имени пользователя:

Несколько клиентов могут быть сохранены и сгруппированы для простых или сложных приложений и могут быть легко извлечены для отправки сообщений клиенту (-ам) интуитивно понятным способом: