SignalR:我可以分组发送消息给呼叫者吗?

时间:2019-02-14 13:20:13

标签: c# asp.net-core 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);

1 个答案:

答案 0 :(得分:0)

您可以从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);