如果signalR服务器(WPF)意外停止,如何注销所有客户端?

新手编码器

我正在使用WPF中的signalR开发聊天应用程序。其中有两个项目:

1)WPF客户

2)WPF服务器

如果服务器在任何时间意外停止,我想断开连接并再次在客户端显示登录屏幕。

这是我在关闭服务器窗口时执行的代码:

    private void ServerMainWindow_Closed(object sender, CancelEventArgs e)
    {
        if (SignalR != null)
        {
            SignalR.Dispose();
        }
    }

我可以从此处处理与数据库相关的内容,但是如何管理客户端?

谢谢你的帮助。

主观的

在服务器中:在任何一个代理中以“断开连接”的形式发送自定义消息。

在客户端中:检查该自定义消息并重定向到登录表单,因为WPF signalR客户端没有内置的onDisconnect函数。

  1. 关于第二个窗口加载的启动部分:

    Get_App_Info_Proxy.On<string>("IO_Stay_Active", (responseHeartBeat) => OnReceiveDataHeartBeat(responseHeartBeat));
    
  2. 在第二个窗口上调用部分,只需根据服务器能够承受的负载按固定间隔检查一次(对于我来说,是一分钟一次)。

    private void hbeatTimer_Tick(object sender, EventArgs e)
    {
       Get_App_Info_Proxy.Invoke("IO_Stay_Active");
    }
    
  3. 接收部分在第二个窗口上:

    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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从 ssh 服务器中的 ssh 客户端注销所有用户?

如果服务器端未推送路由,如何使所有客户端流量通过OpenVPN?

向所有客户端发送消息(客户端-服务器通信)

如何获取连接到Websocket服务器的所有客户端的“真实” IP地址

如何使.Net Framework SignalR客户端连接到.Net Core SignalR服务器?

SignalR:如何在Signalr中自动将内容从服务器推送到客户端?

如何从SignalR客户端注销功能?

SignalR客户端未收到服务器消息

从客户端到服务器的SignalR消息

SignalR 从服务器连接到客户端

SignalR客户端-服务器连接问题

API 服务器作为 SignalR 客户端

如何创建只有服务器验证客户端的 Python SSL 客户端/服务器对

Signalr在服务器中托管JavaScript客户端的客户端脚本

如何在客户端处理SignalR服务器异常?

在ASP.NET Core SignalR中,如何从服务器向客户端发送消息?

如何从Xamarin客户端连接到SignalR服务器?

如何在blazor服务器应用中使用signalr从http客户端获取令牌?

如何使用带代理的Signalr将消息从客户端发送到服务器?

在服务器端捕获所有JavaScript客户端错误

当客户端没有向服务器返回答案时,如何停止重新发送网页

如何让我的多线程服务器/客户端聊天程序使用套接字向所有客户端回显消息?

ZMQ-客户端服务器:客户端意外关闭,服务器如何检测到它?

如果客户端和服务器都具有相同的IP,如何配置Virtualbox内部网络?

HTTP客户端编程-如何知道服务器已发送所有数据

如何从连接到共享打印对象的客户端服务器获取所有IP(或用户名)?

如果没有服务器,则GRPC客户端onNext不会失败

SignalR和高可用性-如果服务器消失了,集线器客户端能否恢复?

如何在客户端发布期间停止服务器进程?