gpt4 book ai didi

c# - SignalR:调用返回值的方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:24 25 4
gpt4 key购买 nike

我已经能够使用 SignalR 将消息推送到客户端并从客户端返回到服务器……到目前为止,我一直很幸运。

我希望 ot 能够做的,这可能只是 SignalR 无法处理的事情......是调用响应。

SignalR 是否允许来自调用的响应?如果是这样,我可以向客户提出请求,只使用第一个响应吗?

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

我玩了很久,要么得到 AggregateException,要么来自 Task<Object> 的转换无效至 Task<MyType>

最佳答案

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

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

关于c# - SignalR:调用返回值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com