我在一个应用程序中使用SingalR,该应用程序在短时间内发送了大量消息.假设我有客户端A和客户端B.客户端A只发送消息而客户端B只是收听消息.客户端A按以下顺序发送以下消息:A-> B-> C-> D.
我所看到的是,客户端B有时会以不同的顺序接收消息,例如:B-> A-> C-> D
保持发送消息的顺序非常重要.我在网上看了一下,我发现有人说我应该在处理这些消息的集线器上的函数上使用async-await.
public async Task hubMethod(msgObject msg) { await Clients.All.message(msg); }
我不确定这有多大帮助,因为每次我从客户端A拨打电话时,singalR都应该创建一个新的集线器实例.它唯一能做的就是等待singalR完成它在服务器上所做的一切,以便将消息发送到另一个客户端并通知客户端A.
所以我的问题是 - 有一个singalR或asp.net机制,确保我在另一个客户端上以正确的顺序接收消息,或者我是否需要编写我自己的机制(服务器或客户端)重新排序消息,如果他们是乱序 - 如果是的话,有没有一个库已经做到了?