处理SignalR . net客户端异常
本文关键字:异常 客户端 net SignalR 处理 | 更新日期: 2023-09-27 18:04:32
我有以下客户端方法(Net客户端):
public void CallServer()
{
try
{
_hubProxy.Invoke("SomeMethod");
}
catch
{
}
}
我是否说这是异步的,因为它将"立即"返回,而不是等待调用完成?如果是这种情况,try..catch
是否会在调用期间捕获任何异常,例如,如果连接已经关闭?(如果没有,我该怎么做呢?)
如果我要添加.Wait()
,这会使代码同步,因此它只在调用完成后返回吗?
最后,在调用上使用await
是否有任何优势,或者这仅在调用具有返回值的服务器方法时有用?
是的,调用是异步的,因此您的代码将不会捕获任何异常,除了(最有可能)当您试图调用一个方法,而实际上是断开连接(该检查应该同步运行)。如果您等待调用,那么是的,您的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