在我们的应用程序中,我们需要发送推送通知给随机数的客户端。 我们没有办法为这些用户创建静态组,直到在 之前发送消息,因为数据已分类并且只能由特定用户看到。SignalR发送消息给随机数的客户端
我们正在尝试SignalR提供通知,但有一些怀疑是实施“发送”方法的最佳方式。
我们想知道下列哪一种选择是最具扩展性和高性能的解决方案,可将大约20条消息/秒发送到随机分组的多达3000个用户。
使用客户端方法?
API中的“客户”方法接受连接ID的列表
Clients.Clients(clientIds).NewMessage(message);
发送到每个客户端?
Clients.Client(clientId).NewMessage(message);
动态创建组?
我们可以在发送之前立即创建群组。
var groupName = Guid.NewGuid().ToString();
foreach (var clientId in clientIds)
{
await Groups.Add(clientId, groupName);
}
Clients.Group(groupName).NewMessage(message);
- 有没有办法知道,如果消息被传递到属于该组的所有客户端?在向该组发送消息之后,我们希望/需要删除该组,因为它只会有效一次。
谢谢。
谢谢你的回答弗洛林。关于小组,您建议删除哪种策略?我们将不会重复使用组,我们将每秒创建大约20组,所以我认为在SignalR中拥有这么多组会产生巨大的性能影响。 – Paulo
嗨Paulo。没有连接时,组将被删除。 –
再次感谢弗洛林。但是,如果任何用户总是连接,那么我将拥有所有的群体永远生活。你不觉得这会对性能造成影响吗? – Paulo