private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing) { isFormClosing = true; WebSocketManager.CloseWebSocket(); } }
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e) { // GM用户点击关闭登录窗口,会强制将整个软件关闭 // 注意:当登录成功,执行LoginForm的Hide方法时,仍旧会触发LoginFrom的closing和closed方法 // 如果不加上这个判断,就会因为LoginForm的Hide,执行下面的逻辑,导致WebSocket被关闭 if (e.CloseReason == CloseReason.UserClosing) { WebSocketManager.CloseWebSocket(); Environment.Exit(0); } }
private void DelegateOnForceOfflinePushCallback(Object obj) { isReceivedForceOfflinePush = true; GmResponseMsg msg = obj as GmResponseMsg; GmForceOfflinePush forceOfflinePush = GmForceOfflinePush.ParseFrom(msg.ProtoData); WebSocketManager.CloseWebSocket(); string tips = string.Format("被GM服务器踢下线,原因为{0}\n请重新登录", forceOfflinePush.ForceOfflineReason); MessageBox.Show(this, tips, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); if (loginForm != null && loginForm.Visible == false) { loginForm.ShowDialog(); } }