Пример #1
0
        // ReSharper disable once ParameterHidesMember
        public async Task Run(CancellationToken cancellationToken)
        {
            this.cancellationToken = cancellationToken;

            var connectInfo = new StreamDeckConnectInfo
            {
                Port          = port,
                PluginUUID    = pluginUUID,
                RegisterEvent = registerEvent,
                Info          = info
            };

            logger.Connecting(connectInfo);

            socket = new ClientWebSocket();
            var uri = new Uri($"ws://localhost:{port}");

            try
            {
                await socket.ConnectAsync(uri, cancellationToken);

                logger.ConnectSuccess(connectInfo);

                await SendMessage(new StreamDeckRegisterMessage
                {
                    Event = registerEvent,
                    UUID  = pluginUUID
                });
            }
            catch (Exception e)
            {
                logger.ConnectFailed(connectInfo, e);
            }

            while (!cancellationToken.IsCancellationRequested)
            {
                try
                {
                    var rawMessage = await ReceiveMessage();

                    if (rawMessage == null)
                    {
                        continue;
                    }

                    logger.MessageReceived(rawMessage);
                    var message = ParseMessage(rawMessage);
                    if (message == null)
                    {
                        continue;
                    }

                    DispatchMessage(message, rawMessage);
                }
                catch (Exception)
                {
                    // TODO log error while handling message
                }
            }
        }
 /// <inheritdoc />
 public void ConnectSuccess(StreamDeckConnectInfo info)
 {
     Log("Connected succesfully");
 }
 /// <inheritdoc />
 public void ConnectFailed(StreamDeckConnectInfo info, Exception exception)
 {
     Log($"Failed to connect: {exception.Message}");
 }
 /// <inheritdoc />
 public void Connecting(StreamDeckConnectInfo info)
 {
     Log($"Connecting to ws://localhost:{info.Port}");
 }
Пример #5
0
 /// <inheritdoc />
 public void ConnectSuccess(StreamDeckConnectInfo info)
 {
 }
Пример #6
0
 /// <inheritdoc />
 public void ConnectFailed(StreamDeckConnectInfo info, Exception exception)
 {
 }
Пример #7
0
 /// <inheritdoc />
 public void Connecting(StreamDeckConnectInfo info)
 {
 }