如果 signalR server(WPF) 意外停止,如何注销所有客户端?
How can I Log out all the clients if signalR server(WPF) stopped accidentally?
我正在 WPF 中使用 signalR 开发聊天应用程序。里面有两个项目:
1) WPF 客户端
2) WPF 服务器
如果服务器在任何时候意外停止,我想断开连接并在客户端再次显示登录屏幕。
这是我在关闭服务器时所做的代码 window:
private void ServerMainWindow_Closed(object sender, CancelEventArgs e)
{
if (SignalR != null)
{
SignalR.Dispose();
}
}
我可以从这里处理数据库相关的东西,但我如何管理客户端?
感谢您的帮助。
在服务器中:在任一代理中将自定义消息作为 "disconnect" 发送。
在客户端中:检查自定义消息并重定向到登录表单,因为 WPF signalR 客户端没有 onDisconnect 内置函数。
第二次 window 加载启动部分:
Get_App_Info_Proxy.On<string>("IO_Stay_Active", (responseHeartBeat) => OnReceiveDataHeartBeat(responseHeartBeat));
第二次调用部分 window,只需根据服务器能够承受的负载定期检查,对于我来说,它是一分钟一次。
private void hbeatTimer_Tick(object sender, EventArgs e)
{
Get_App_Info_Proxy.Invoke("IO_Stay_Active");
}
二号接收部分window:
private void OnReceiveDataHeartBeat(string responseHeartBeat)
{
if (responseHeartBeat == "IO_101") // I would prefer custom code programmed in server
{
Login loginform = new Login(); // redirecting first form
loginform.Show();
}
}
我正在 WPF 中使用 signalR 开发聊天应用程序。里面有两个项目:
1) WPF 客户端
2) WPF 服务器
如果服务器在任何时候意外停止,我想断开连接并在客户端再次显示登录屏幕。
这是我在关闭服务器时所做的代码 window:
private void ServerMainWindow_Closed(object sender, CancelEventArgs e)
{
if (SignalR != null)
{
SignalR.Dispose();
}
}
我可以从这里处理数据库相关的东西,但我如何管理客户端?
感谢您的帮助。
在服务器中:在任一代理中将自定义消息作为 "disconnect" 发送。
在客户端中:检查自定义消息并重定向到登录表单,因为 WPF signalR 客户端没有 onDisconnect 内置函数。
第二次 window 加载启动部分:
Get_App_Info_Proxy.On<string>("IO_Stay_Active", (responseHeartBeat) => OnReceiveDataHeartBeat(responseHeartBeat));
第二次调用部分 window,只需根据服务器能够承受的负载定期检查,对于我来说,它是一分钟一次。
private void hbeatTimer_Tick(object sender, EventArgs e) { Get_App_Info_Proxy.Invoke("IO_Stay_Active"); }
二号接收部分window:
private void OnReceiveDataHeartBeat(string responseHeartBeat) { if (responseHeartBeat == "IO_101") // I would prefer custom code programmed in server { Login loginform = new Login(); // redirecting first form loginform.Show(); } }