Beispiel #1
0
 def disconnect(self):
   if self.__receiver:
     self.__receiver.stopping = True
     count = 0
     while (len(self.__receiver.inMsgs) > 0 or len(self.__receiver.outMsgs) > 0) and self.__receiver.paused == False:
       logger.debug("disconnecting %s %s", self.__receiver.inMsgs, self.__receiver.outMsgs)
       time.sleep(.2)
       count += 1
       if count == 20:
         break
     if self.__receiver and self.__receiver.paused == False:
       assert self.__receiver.inMsgs == {}, self.__receiver.inMsgs
       assert self.__receiver.outMsgs == {}, self.__receiver.outMsgs
   disconnect = MQTTV3.Disconnects()
   sendtosocket(self.sock, disconnect.pack())
   time.sleep(0.1)
   if self.cleansession:
     self.__receiver = None
   else:
     self.__receiver.socket = None
   self.sock.close()
   if self.__receiver:
     while self.__receiver.running:
       time.sleep(0.1)
     self.__receiver.stopping = False
Beispiel #2
0
def disconnect(sockid: "socket"):
    sock = state.sockets[sockid]
    disconnect = MQTTV3.Disconnects()
    sock.send(disconnect.pack())
    checksocket(sockid)