fix websocket not closing and sometimes looping, better fix for #806
This commit is contained in:
parent
9ec4ed204e
commit
c0ffa41010
@ -28,7 +28,7 @@ class KlippyWebsocket(threading.Thread):
|
|||||||
self._callback = callback
|
self._callback = callback
|
||||||
self.klippy = MoonrakerApi(self)
|
self.klippy = MoonrakerApi(self)
|
||||||
self.ws = None
|
self.ws = None
|
||||||
|
self.closing = False
|
||||||
self.host = host
|
self.host = host
|
||||||
self.port = port
|
self.port = port
|
||||||
|
|
||||||
@ -86,9 +86,9 @@ class KlippyWebsocket(threading.Thread):
|
|||||||
logging.debug("Error starting web socket")
|
logging.debug("Error starting web socket")
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
|
self.closing = True
|
||||||
self.connecting = False
|
self.connecting = False
|
||||||
if self.ws is not None:
|
if self.ws is not None:
|
||||||
logging.debug("Closing websocket")
|
|
||||||
self.ws.close()
|
self.ws.close()
|
||||||
|
|
||||||
def on_message(self, *args):
|
def on_message(self, *args):
|
||||||
@ -144,10 +144,14 @@ class KlippyWebsocket(threading.Thread):
|
|||||||
if not self.connected:
|
if not self.connected:
|
||||||
logging.debug("Connection already closed")
|
logging.debug("Connection already closed")
|
||||||
return
|
return
|
||||||
|
if self.closing:
|
||||||
|
logging.debug("Closing websocket")
|
||||||
|
self.ws.keep_running = False
|
||||||
|
self.close()
|
||||||
|
self.closing = False
|
||||||
|
return
|
||||||
if "on_close" in self._callback:
|
if "on_close" in self._callback:
|
||||||
GLib.idle_add(self._callback['on_close'], "Lost Connection to Moonraker")
|
GLib.idle_add(self._callback['on_close'], "Lost Connection to Moonraker")
|
||||||
|
|
||||||
logging.info("Moonraker Websocket Closed")
|
logging.info("Moonraker Websocket Closed")
|
||||||
self.connected = False
|
self.connected = False
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user