Личный чат с SignalR

Я хотел бы знать, можно ли создать чат для частного разговора, такого как чат gmail или hotmail.. Как я могу гарантировать, что только клиент A разговаривает с клиентом B? Как я могу гарантировать, что только зарегистрированные клиенты могут говорить?

4 ответов


конечно, вы можете создать уникальную группу "" каждый раз, когда пользователь инициирует чат с другим пользователем (или группой пользователей). Затем при отправке сообщений в эту группу только эти пользователи получат сообщение. Можно также повысить уровень безопасности перед отправкой сообщений группе, чтобы гарантировать, что отправителю сообщения разрешено отправлять сообщения этой группе.


попробуйте это приложение для приватного чата с SignalR

описание применение: http://www.aspbucket.com/2016/03/implement-of-private-one-to-one-chat.html

ссылка для скачивания https://github.com/shivam01990/SignalR-private-one-to-one-chat

enter image description here


посмотреть ChatWithTracking на основной образец чата, Это отличная отправная точка для настройки IM

p.s: обновил ссылку; используя поисковый запрос в случае, если они снова изменят структуру РЕПО


каждый клиент, подключенный к концентратору передает уникальный идентификатор соединения. Это значение можно получить в контексте.ConnectionId свойство контекста концентратора. Если приложению необходимо сопоставить пользователя с идентификатором подключения и сохранить это сопоставление, можно использовать одно из следующих действий:

  1. в памяти, например, словарь
  2. группа SignalR для каждого пользователя
  3. постоянное, внешнее хранение, например таблица базы данных или таблица Windows Azure

http://www.asp.net/signalr/overview/hubs-api/mapping-users-to-connections