2015-01-10 3 views
0

Я работаю над личным сообщением Signal-R. Я пытался использовать сеансы, но не делал. Я хочу использовать идентификаторы пользователей из базы данных, а не context.ConnectionId. Как я могу это сделать?SignalR - Private Messaging-Userid

+0

вы можете передать userId (или любую информацию) от клиента по подключению концентратора в качестве параметра, а затем установить группу 1: 1 в своем концентраторе. Затем вы можете выполнить хаб-методы, которые нацелены на эту группу (с одним ID), который по существу выполнит этот – scniro

+0

, не могли бы вы привести мне пример? – dave

ответ

0

Предлагаю вам использовать IUserIdProvider. По умолчанию один генерирует имена пользователей от клиента IPrincipal.Identity.Name, но вы можете предоставить свои собственные:

http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections#IUserIdProvider

Это позволяет отправлять сообщения с помощью .User(userName) вместо .Client(connectionId).

В статье, в которую я ссылаюсь, также представлены несколько альтернатив, таких как однопользовательские группы для обмена сообщениями без использования их идентификатора соединения.

+0

Спасибо за ваш ответ, отлично работает. – dave