def publish(self, p_topic, p_message, qosLevel=0, retain=False, dup=False, messageId=None): # LOG.info("Sending publish packet\n\tTopic: {};\n\tAddr: {};".format(p_topic, self.m_broker.BrokerAddress)) l_varHeader = bytearray() l_payload = bytearray() # Type = publish l_varHeader.extend(EncodeDecode._encodeString(p_topic)) if qosLevel > 0: if messageId is not None: l_varHeader.extend(EncodeDecode._encodeValue(messageId)) else: l_varHeader.extend(EncodeDecode._encodeValue(random.randint(1, 0xFFFF))) l_payload.extend(EncodeDecode._put_string(p_message)) # l_payload.extend(p_message) l_fixHeader = self._build_fixed_header(0x03, len(l_varHeader) + len(l_payload), dup, qosLevel, retain) self._send_transport(l_fixHeader, l_varHeader, l_payload)