def publish(topic, payload, retained=False, port=1883, host="localhost"): publish = MQTTSN.Publishes() publish.Flags.QoS = 3 publish.Flags.Retain = retained if isinstance(payload, str): pass elif isinstance(payload, bytes): payload = payload.decode() if isinstance(topic, str): if len(topic) > 2: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = len(topic) payload = topic + payload else: publish.Flags.TopicIdType = MQTTSN.TOPIC_SHORTNAME publish.TopicName = topic else: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = topic publish.MsgId = 0 #print("payload", payload) publish.Data = payload sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.sendto(publish.pack(), (host, port)) sock.close() return
def publish(self, topic, payload, qos=0, retained=False): publish = MQTTSN.Publishes() publish.Flags.QoS = qos publish.Flags.Retain = retained self.puback_flag = False #reset flag if type(topic) == str and len(topic) > 2: print("invalid topic") return None if qos in [-1, 0]: #qos 0 or -1 publish.MsgId = 0 else: publish.MsgId = self.__nextMsgid() print("MsgId=", publish.MsgId) if type(topic) == int: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = topic if type(topic) == str and len(topic) <= 2: publish.Flags.TopicIdType = MQTTSN.TOPIC_SHORTNAME publish.TopicId = topic ######### publish.Data = payload a = publish.pack() self.sock.send(a.encode()) self.__receiver.outMsgs[publish.MsgId] = publish #self.lookfor(MQTTSN.PUBACK) #return(self.waitfor(MQTTSN.PUBACK)) return publish.MsgId
def publish(self, topic, payload, qos=1, retained=False): if isinstance(payload, str) or isinstance(payload, bytes): pass else: raise TypeError('Payload must be str or bytes.') publish = MQTTSN.Publishes() publish.Flags.QoS = qos publish.Flags.Retain = retained if isinstance(topic, str): publish.Flags.TopicIdType = MQTTSN.TOPIC_SHORTNAME publish.TopicName = topic else: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = topic #print('Topico =', topic) #print('Id_de_topico =', msg.TopicId) if qos in [-1, 0]: publish.MsgId = 0 else: publish.MsgId = self.__nextMsgid() #print("MsgId", publish.MsgId) self.__receiver.outMsgs[publish.MsgId] = publish publish.Data = payload self.sock.send(publish.pack()) return publish.MsgId
def publish(self, topic, payload, qos=0, retained=False): publish = MQTTSN.Publishes() publish.Flags.QoS = qos publish.Flags.Retain = retained if type(topic) == types.StringType: publish.Flags.TopicIdType = MQTTSN.TOPIC_SHORTNAME publish.TopicName = topic else: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = topic if qos in [-1, 0]: publish.MsgId = 0 else: publish.MsgId = self.__nextMsgid() print "MsgId", publish.MsgId self.__receiver.outMsgs[publish.MsgId] = publish publish.Data = payload self.sock.send(publish.pack()) return publish.MsgId
def publish(topic, payload, retained=False, port=1883, host="localhost"): publish = MQTTSN.Publishes() publish.Flags.QoS = 3 publish.Flags.Retain = retained if type(topic) == bytes: if len(topic) > 2: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = len(topic) payload = topic + payload else: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicName = topic if type(topic) == str and len(topic) <= 2: publish.Flags.TopicIdType = MQTTSN.TOPIC_SHORTNAME publish.TopicId = topic publish.MsgId = 0 publish.Data = payload a = publish.pack() sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.sendto(a.encode(), (host, port)) sock.close() return
def publish(topic, payload, retained=False, port=1884, host="192.168.137.150"): publish = MQTTSN.Publishes() publish.Flags.QoS = 3 publish.Flags.Retain = retained if type(topic) == types.StringType: if len(topic) > 2: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = len(topic) payload = topic + payload else: publish.Flags.TopicIdType = MQTTSN.TOPIC_SHORTNAME publish.TopicName = topic else: publish.Flags.TopicIdType = MQTTSN.TOPIC_NORMAL publish.TopicId = topic publish.MsgId = 0 print "payload", payload publish.Data = payload sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.sendto(publish.pack(), (host, port)) sock.close() return