SignalR:调用返回值的方法



我已经能够使用SignalR将消息推送到客户端,并将消息从客户端推回到服务器。。。到目前为止,这是一件幸事。

我想做的事情,这可能只是SignalR无法处理的事情。。。是调用以获取响应。

SignalR是否允许调用响应?如果是,我可以向客户端发出请求,然后只使用第一个响应吗?

我看到了对HubResponse和task.result的引用,但我不太明白如何让hub方法从客户端返回值。

我玩了很多,要么得到了AggregateException,要么从Task<Object>Task<MyType>的无效转换

连接的客户端仅进行广播。也就是说,服务器不能直接向它们发出请求。因此,你需要做一些事情,比如使用Hub方法,其中一个客户端可以请求其他人完成请求,然后Hub将该请求广播给所有连接的客户端,然后无论哪个客户端首先响应,你都可以广播回原始客户端。显然,您需要在Hub中保持自己的状态,以便将请求/响应导向正确的受众。我还认为,一旦你收到第一个回复,你就会想告诉所有其他客户不要打扰/停止回答这个问题。

如果没有更多的细节,我不确定我是否能为它规定一个确切的体系结构。对于初学者来说,任何客户都应该能够响应任何请求吗?或者你会对客户进行分类吗?如果你可以对客户端进行分类,那么你可以确保你只使用组来广播对他们有意义的请求。接下来,你基本上是在尝试定义一个可以提出的所有问题的界面,还是希望该集能够在不随时间改变集线器的情况下扩展?这将决定您是使用强类型Hub方法,还是只使用某种泛型AskQuestion(string questionId)。如果是前者,那么您可能不会像前面提到的那样使用组,而是只为每个请求类别设置不同的集线器。

最新更新