public void OnMessageReceived(RawMessage message) { string topic = message.Topic; try { RawMessageListener listener = null; if (rawMessageListenerDic.ContainsKey(topic)) { listener = rawMessageListenerDic[topic]; } if (listener != null) { listener.OnMessageReceived(message); return; } if (topic.Contains("/messages/down")) { OnDeviceMessage(message); } else if (topic.Contains("sys/commands/request_id")) { OnCommand(message); } else if (topic.Contains("/sys/properties/set/request_id")) { OnPropertiesSet(message); } else if (topic.Contains("/sys/properties/get/request_id")) { OnPropertiesGet(message); } else if (topic.Contains("/sys/events/down")) { OnEvent(message); } else if (topic.Contains("/huawei/v1/devices") && topic.Contains("/command/")) { OnCommandV3(message); } else if (topic.Contains("/sys/shadow/get/response")) { OnShadowCommand(message); } else if (topic.Contains("/user/")) { OnCustomCommand(message); } else { Log.Error("unknown topic: " + topic); } } catch (Exception ex) { Log.Error("SDK.Error: message received error, the topic is " + topic); } }
public MqttConnection(ClientConf clientConf, RawMessageListener rawMessageListener, ConnectListener connectListener) { this.clientConf = clientConf; this.rawMessageListener = rawMessageListener; this.connectListener = connectListener; }