首页 > 解决方案 > SignalR:我可以向群组中的呼叫者发送消息吗?

问题描述

如果您不使用群组,您可以向呼叫者发送消息。但是我希望能够在客户加入群组时向他发送消息。这可能吗?

这就是我现在使用的:

如果不使用组,则给呼叫者

await Clients.Caller.SendAsync("update", "You have connected to the server.");

这就是我发现的。

从 Microsoft 网站上的使用群组页面

发送给群组中的所有人

Clients.Group(groupName).addChatMessage(name, message);

除指定的所有客户端。

Clients.Group(groupName, connectionId1, connectionId2).addChatMessage(name, message);

除呼叫者外的所有客户

Clients.OthersInGroup(groupName).addChatMessage(name, message);

标签: c#asp.net-coresignalr

解决方案


您可以从 ChatHub 将您的客户添加或删除到群组中,例如

public async Task JoinGroup(string name, string group)
{
    await Groups.Add(Context.ConnectionId, group);
}

public Task LeaveGroup(string name, string group)
{
    return Groups.Remove(Context.ConnectionId, group);
}

在您js这边,您需要为上述两种方法添加回调,

$.connection.chatHub.server.joinGroup(connectionID, group);

$.connection.chatHub.server.leaveGroup(connectionID, group);

推荐阅读