SignalR - приватный обмен сообщениями
Я работаю над личными сообщениями Signal-R. Я пытался использовать сеансы, но не делал. Я хочу использовать идентификаторы пользователей из базы данных вместо context.ConnectionId. Как я могу это сделать?
1 ответ
Решение
Я предлагаю вам использовать IUserIdProvider
, По умолчанию генерирует имена пользователей из клиента IPrincipal.Identity.Name
, но вы можете предоставить свои собственные:
http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections
Это позволяет отправлять сообщения, используя .User(userName)
вместо .Client(connectionId)
,
Статья, на которую я ссылался, также предоставляет несколько альтернатив, таких как однопользовательские группы для обмена сообщениями пользователей без использования их идентификатора соединения.