c# - 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);
解决方案
您可以从 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);
推荐阅读
- python - 运行时控制 TensorFlow 模块
- struct - Coldfusion Structinsert 正在覆盖原始插入的值
- html - 使用 flexbox 垂直间隔列表和子列表项
- python - 玩python游戏背景音乐不耽误实际游戏
- css - 如何
- android - 如何使我的编辑文本在配置更改中保留,使用视图模型而不使用数据绑定
- php - 如何在 Wordpress 循环中显示 4 列 Bootstrap
- firebase - Flutter web:试图调用一个非函数,比如null: 'dart.global.firebase.storage
- java - 如何正确调用另一个类的构造函数,然后将其作为数组打印到控制台?
- python - 在 tkiner 中单击按钮后如何在画布上更新文本