如何在 SignalR 消息中发送参数并使用该参数返回结果

问题描述 投票:0回答:1

我想使用 ISingleClientProxy.InvokeAsync 发送消息 SignalR 客户端并等待响应。 我可以使用以下方法轻松完成这项工作:

服务器发送:

return await Clients.Client(connectionInfo.ConnectionId).InvokeAsync<string>("Test", default);

客户退货:

this.hubConnection.On<string>("Test", () => { return "Successful"; });

我的问题是我希望能够向客户端发送一个参数并让它用它做一些事情。

类似这样的事情 服务器发送:

return await Clients.Client(connectionInfo.ConnectionId).InvokeAsync<string>("Test", "Prefix", default);

客户退货:

this.hubConnection.On<string>("Test", (prefix) => { return $"{prefix}Successful"; });

但是,我一发送参数就遇到了问题。 在这个例子中我得到:

Anonymous function converted to a void returning delegate cannot return a value; 

有人可以帮忙吗?

提前致谢

c# asp.net-core signalr
1个回答
0
投票

您可以尝试在服务器中心创建一个方法

        public void ServerLog(string prefix)
        {
            Console.WriteLine($"{prefix}Successful");
        }

然后在客户端你可以让服务器在收到消息时执行这个方法

        hubConnection.On<string>("Test", (prefix) =>
        {
            hubConnection.InvokeAsync<string>("ServerLog", prefix);
        });
© www.soinside.com 2019 - 2024. All rights reserved.