private void StartHeartbeatSender() { StopHeartbeatSender(); HeartbeatSenderThread = new Thread(delegate() { IsHeartbeatSenderRunning = true; while (IsHeartbeatSenderRunning) { try { PackWriter.SendMessage((int)BiliPackWriter.MessageType.HEARTBEAT, "[object Object]"); } catch (SocketException) { ConnectionFailed?.Invoke("心跳包发送失败"); Disconnect(); } catch (InvalidOperationException) { ConnectionFailed?.Invoke("心跳包发送失败"); Disconnect(); } catch (IOException) { ConnectionFailed?.Invoke("心跳包发送失败"); Disconnect(); } Thread.Sleep(30 * 1000); } }); HeartbeatSenderThread.Start(); }
private bool InitConnection(DanmakuServer danmakuServer) { Json.Value initMsg = new Json.Value.Object { ["uid"] = 0, ["roomid"] = danmakuServer.RoomId, ["protover"] = 2, ["platform"] = "web", ["clientver"] = "1.12.0", ["type"] = 2, ["key"] = danmakuServer.Token }; try { PackWriter.SendMessage((int)BiliPackWriter.MessageType.CONNECT, initMsg.ToString()); return(true); } catch (SocketException) { ConnectionFailed?.Invoke("连接请求发送失败"); return(false); } catch (InvalidOperationException) { ConnectionFailed?.Invoke("连接请求发送失败"); return(false); } catch (IOException) { ConnectionFailed?.Invoke("连接请求发送失败"); return(false); } }