我正在使用WPF中的signalR开发聊天应用程序。其中有两个项目:
1)WPF客户
2)WPF服务器
如果服务器在任何时间意外停止,我想断开连接并再次在客户端显示登录屏幕。
这是我在关闭服务器窗口时执行的代码:
private void ServerMainWindow_Closed(object sender, CancelEventArgs e)
{
if (SignalR != null)
{
SignalR.Dispose();
}
}
我可以从此处处理与数据库相关的内容,但是如何管理客户端?
谢谢你的帮助。
在服务器中:在任何一个代理中以“断开连接”的形式发送自定义消息。
在客户端中:检查该自定义消息并重定向到登录表单,因为WPF signalR客户端没有内置的onDisconnect函数。
关于第二个窗口加载的启动部分:
Get_App_Info_Proxy.On<string>("IO_Stay_Active", (responseHeartBeat) => OnReceiveDataHeartBeat(responseHeartBeat));
在第二个窗口上调用部分,只需根据服务器能够承受的负载按固定间隔检查一次(对于我来说,是一分钟一次)。
private void hbeatTimer_Tick(object sender, EventArgs e)
{
Get_App_Info_Proxy.Invoke("IO_Stay_Active");
}
接收部分在第二个窗口上:
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();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句