示例#1
0
        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);
            }
        }
示例#2
0
文件: MainForm.cs 项目: fr830/SCADA-2
        public void UnitSocketStatus(object ender, EventArgs e)
        {
            SocketDisconnectEvent arg = (SocketDisconnectEvent)e;

            CalLabUnitStatusChangeDel(arg.status, arg.TextColor, arg.OpenButton);
        }
示例#3
0
文件: MainForm.cs 项目: fr830/SCADA-2
        //Button_Click_Event_Stop

        //Customize_Function_Start
        public void SocketError(object ender, EventArgs e)
        {
            SocketDisconnectEvent arg = (SocketDisconnectEvent)e;

            CalLabStatusChangeDel(arg.status, arg.TextColor);
        }