Private chat with SignalR

2019-03-09 18:01发布

问题:

I would like to know if is possible to create a chat for private conversation like gmail chat or hotmail.. How can I ensure that only client A talks with client B? How can I ensure that only logged clients can talk?

回答1:

Sure, you can create a unique "Group" each time a user initiates a chat with another user (or set of users). Then when you send messages to that group only those users would receive the message. You could also layer more security in front of sending messages to a group to ensure that the person sending the message is allowed to send a message to that group.



回答2:

Try this application for Private chat with SignalR

Description of Application: http://www.aspbucket.com/2016/03/implement-of-private-one-to-one-chat.html

Download link https://github.com/shivam01990/SignalR-private-one-to-one-chat



回答3:

Look at ChatWithTracking in Basic chat sample, that's a great starting point for IM setup

p.s: updated the link; using a search query in case they change the repo structure again



回答4:

Each client connecting to a hub passes a unique connection id. You can retrieve this value in the Context.ConnectionId property of the hub context. If your application needs to map a user to the connection id and persist that mapping, you can use one of the following:

  1. In-memory storage, such as a dictionary
  2. SignalR group for each user
  3. Permanent, external storage, such as a database table or Windows Azure table

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



标签: signalr