处理SignalR . net客户端异常

本文关键字:异常 客户端 net SignalR 处理 | 更新日期: 2023-09-27 18:04:32

我有以下客户端方法(Net客户端):

public void CallServer()
{
    try
    {
        _hubProxy.Invoke("SomeMethod");
    }
    catch
    {
    }
}

我是否说这是异步的,因为它将"立即"返回,而不是等待调用完成?如果是这种情况,try..catch是否会在调用期间捕获任何异常,例如,如果连接已经关闭?(如果没有,我该怎么做呢?)

如果我要添加.Wait(),这会使代码同步,因此它只在调用完成后返回吗?

最后,在调用上使用await是否有任何优势,或者这仅在调用具有返回值的服务器方法时有用?

处理SignalR . net客户端异常

是的,调用是异步的,因此您的代码将不会捕获任何异常,除了(最有可能)当您试图调用一个方法,而实际上是断开连接(该检查应该同步运行)。如果您等待调用,那么是的,您的try...catch块将捕获远程发生在服务器端方法调用上的错误(但是那里还发生了其他事情,例如您必须允许将详细的错误传递到客户机)。但是,为了捕获更多与连接相关的一般错误,例如与连接相关的失败,您应该订阅连接对象上的Error事件,如下所示:

 hubConnection.Error += ex => Console.WriteLine("Error: {0}", ex.Message);

检查:http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-net-client handleerrors