как отслеживать пользователей с websocket++ 0.3 X


Есть ли способ отслеживать данные каждого пользователя с помощью websocket++ 0.3 X?

Я хочу иметь возможность идентифицировать их, чтобы отслеживать, на что они смотрят и что им следует отправить. Возьмите stack в качестве примера: пока вы смотрите на этот вопрос, websocket может (и я думаю, что делает) хранить в памяти, что вы смотрите на этот вопрос, и отправлять вам соответствующие обновления, такие как голоса, новые комментарии и ответы, а также обновления StackExchange в левом верхнем углу. угол.

Кроме того, пользователи должны быть в состоянии идентифицировать. Есть ли идентификатор сеанса, присущий WebSocket, который уже скрывается в websocket++? Если нет, то как websocket++ отслеживает пользователей?

2 5

2 ответа:

Самый простой способ, как вы упомянули в своем ответе, использовать connection_hdl в качестве ключа для ассоциативного контейнера, в котором хранятся любые другие необходимые вам данные. WebSocket++ имеет некоторые другие варианты для случаев, когда такой поиск был бы слишком дорогим.

Поскольку это обычный вопрос, я написал несколько более формальных примеров и документации о том, как это сделать здесь: http://www.zaphoyd.com/websocketpp/manual/common-patterns/storing-connection-specificsession-information.

А, ладно. Он все это время прятался у всех на виду. http://www.zaphoyd.com/websocketpp/manual/building-program-websocket

Дескриптор соединения-это маркер, который однозначно идентифицирует соединение, получившее сообщение. Его можно использовать для того чтобы определить где для отправки ответных сообщений или сохраненных и используемых для отправки сообщений позже. То тип дескриптора соединения-websocketpp:: connection_hdl.