Beispiel #1
0
        private async void ProcessBuffer(byte[] buffer)
        {
            await ThreadPool.RunAsync(state =>
            {
                var args = new MqttNetEventArgs {
                    ClientUid = _clientUid
                };

                try
                {
                    // Process incomming messages
                    args.Message = MqttMessageDeserializer.Deserialize(buffer);
                    if (args.Message is IMqttIdMessage)
                    {
                        var msgWithId = args.Message as IMqttIdMessage;
                        _logger.LogMessage("Socket", LogLevel.Verbose, string.Format("Received message type '{0}', ID={1} from server.", msgWithId.MessageType, msgWithId.MessageId));
                    }
                    else
                    {
                        _logger.LogMessage("Socket", LogLevel.Verbose, string.Format("SOCKET: Received message type '{0}' from server.", args.Message.MessageType));
                    }
                }
                catch (Exception ex)
                {
                    args.Exception = ex;
                }

                _messageReceivedHandler(args);
            });
        }
        private void ProcessBuffer(byte[] buffer)
        {
            var t = new Thread(() =>
            {
                var args = new MqttNetEventArgs {
                    ClientUid = _clientUid
                };

                try
                {
                    // Process incomming messages
                    args.Message = MqttMessageDeserializer.Deserialize(buffer);

                    string id = "N/A";
                    if (args.Message is IMqttIdMessage)
                    {
                        id = ((IMqttIdMessage)args.Message).MessageId.ToString();
                    }
                    _logger.LogMessage("Socket", LogLevel.Verbose,
                                       "Received message type " + args.Message.MessageType +
                                       ", QOS=" + args.Message.QualityOfService +
                                       ", ID=" + id);
                }
                catch (Exception ex)
                {
                    args.Exception = ex;
                }

                MessageReceived(args);
            });

            t.Start();
        }
Beispiel #3
0
        private void ProcessBuffer(byte[] buffer, ConnectedClientInfo info)
        {
            ThreadPool.QueueUserWorkItem(state =>
            {
                // When receiving the ConnAck message, we are still using the ConnectionKey param
                // All other cases we've connected the client and use the ClientUid param
                var args = new MqttNetEventArgs
                {
                    ClientUid = info.ClientUid
                };

                try
                {
                    // Process incomming messages
                    args.Message = MqttMessageDeserializer.Deserialize(buffer);
                    if (args.Message is IMqttIdMessage)
                    {
                        var msgWithId = args.Message as IMqttIdMessage;
                        _logger.LogMessage("Socket", LogLevel.Verbose,
                                           string.Format("Received message type '{0}', ID={1}, from client {2}.", msgWithId.MessageType,
                                                         msgWithId.MessageId, info.ClientUid));
                    }
                    else
                    {
                        _logger.LogMessage("Socket", LogLevel.Verbose,
                                           string.Format("Received message type '{0}' from client {1}.", args.Message.MessageType, info.ClientUid));
                    }
                }
                catch (Exception ex)
                {
                    var outer      = new Exception(string.Format("Error deserializing message from network buffer. Buffer may be corrupt. Details: {0}", ex.Message), ex);
                    args.Exception = outer;
                    _logger.LogMessage("Socket", LogLevel.Error, outer.Message);
                }

                if (_messageReceivedHandler != null)
                {
                    _messageReceivedHandler(args);
                }
            });
        }