C# 使用asp.net核心信号器和angular 2进行一对一聊天

C# 使用asp.net核心信号器和angular 2进行一对一聊天,c#,asp.net-core,signalr,C#,Asp.net Core,Signalr,在这里,我将该方法调用到我的SignalR Hub类中,以向用户广播消息。我为向所有连接的用户发送消息做了另一种方法,但现在我希望在两个用户之间发送和接收消息创建组 将客户端添加到组: Groups.AddAsync("YourGroupId", Context.ConnectionId); Clients.Group("").MethodOnYourClient(""); 从组中删除客户端: Groups.RemoveAsync("YourGroupId", Context.Connec

在这里,我将该方法调用到我的SignalR Hub类中,以向用户广播消息。我为向所有连接的用户发送消息做了另一种方法,但现在我希望在两个用户之间发送和接收消息

创建组

将客户端添加到组:

Groups.AddAsync("YourGroupId", Context.ConnectionId); 
Clients.Group("").MethodOnYourClient("");
从组中删除客户端:

Groups.RemoveAsync("YourGroupId", Context.ConnectionId); 
向组发送消息:

Groups.AddAsync("YourGroupId", Context.ConnectionId); 
Clients.Group("").MethodOnYourClient("");
备注: 我建议您阅读本教程:


我知道这不是asp.net核心信号器,但大部分内容看起来都很相似。也许您必须在intellisense中显示现有类具有哪些可能性。

一个选项是为每个新的聊天伙伴创建一个组感谢您的回答,但我没有发现创建group.net core。如果不是新聊天组,则旧组将消失?在您的中心中有:Groups.AddAsync(“YourGroupId”),Context.ConnectionId);还有RemoveAsync抱歉,我在信号器中是新成员。什么是Context.ConnectionId?在加入组的情况下,这意味着该组是创建的。连接到集线器的每个客户端都有唯一的Id。因此,您必须将两个聊天伙伴添加到一个组中。简单地在组中添加ConnectionId(您将使用Conext.ConnectionId获得)。我没有任何类似于leaveChatRoom、leaveChatRoom的方法,但我只需要一个允许用户之间私人聊天的方法。您必须考虑整个系统。以skype为例。首先你要开始。然后其他用户看到您已连接,您也看到其他已连接的用户。然后你想点击另一个用户,一个新的“聊天窗口”打开。在这里,你必须为这两个客户创建组。所以没有通用的魔法方法。你必须画一个草图,并考虑你的聊天系统。如果某个客户加入了群,我已经成功地立即向他发送消息。但在我的界面中,我有一个讨论列表,如果我点击讨论列表中的一个项目,我和客户之间的所有消息都将出现在另一个界面中因此,我已经在中心调用JoinGroup方法,让用户加入该组。我不明白“在我的情况下,在我的界面中”是什么意思。。。也许一些代码会有所帮助。我建议你有一个额外的问题,但最初的问题得到了回答?