public async Task <bool> ConnectAsync() { try { WebSocket = new ClientWebSocket(); if (string.IsNullOrEmpty(DanmuServer)) { InitDanmuServer(); } await WebSocket.ConnectAsync(new Uri($"wss://{DanmuServer}/sub"), CancellationToken.None); await SendJoinPacketAsync(); new Thread(async() => { while (WebSocket.State == WebSocketState.Open) { try { await SendHeartbeatPacketAsync(); await Task.Delay(1000 * 30); } catch { //TODO: process this } } SocketDisconnectEvent?.Invoke(this); }).Start(); BeginProcessPacket(); return(true); } catch (Exception ex) { LogHelper.Error($"Connect to danmu server {DanmuServer} error.", true, ex); return(false); } }
public void UnitSocketStatus(object ender, EventArgs e) { SocketDisconnectEvent arg = (SocketDisconnectEvent)e; CalLabUnitStatusChangeDel(arg.status, arg.TextColor, arg.OpenButton); }
//Button_Click_Event_Stop //Customize_Function_Start public void SocketError(object ender, EventArgs e) { SocketDisconnectEvent arg = (SocketDisconnectEvent)e; CalLabStatusChangeDel(arg.status, arg.TextColor); }