gpt4 book ai didi

asp.net-web-api - 从 SignalR 服务器方法返回错误

转载 作者:行者123 更新时间:2023-12-02 04:44:58 27 4
gpt4 key购买 nike

我是 SignalR 的新手,有一个小细节我无法理解。

我的 SignalR 集线器包括许多 channel ,客户端可以通过服务器方法加入其中一个或多个 channel :

joinChannel(string channelName)

我不明白的是这个方法应该返回什么。

如果它是一个普通的“RPC”方法,我会通过 IHttpActionResult 返回一个状态(200 - Ok, 404 - Not found, 403 - Forbidden 等) .

如何在 SignalR 中指示成功/失败?
什么决定回复是否到达 .done.fail在客户端?

更新
目前,我的方法在出错时返回一个非零值。
int joinChannel(string channelName) {
...
return errorCode;
}

这有效,但它会在客户端创建不必要的复杂代码
hubProxy.server.joinChannel('channel1')
.done(function (result) {
if (result != 0) {
// error handling
}
})
.fail(function (error) {
// error handling
});

最佳答案

要确认您的操作已成功执行,您可以调用客户端方法。所以,基本上它看起来像这样:

    public void ServerMethod(argumentList)
{
if (/* server code executed successfully */)
Clients.Caller.onSuccess(arguments);

else Clients.Caller.onFailure(arguments);
}

这段代码的作用是通过调用客户端方法(JavaScript 中定义的方法)来通知服务器方法的调用者成功/失败。您还可以在所有客户端或仅对特定用户执行方法。

由于它不是 RPC 机制,我认为这是在 SignalR 中模拟返回类型最接近的事情。

希望这可以帮助!

祝你好运!

关于asp.net-web-api - 从 SignalR 服务器方法返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866317/

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