diff --git a/lib/network.py b/lib/network.py index 3809d7f..3e16069 100644 --- a/lib/network.py +++ b/lib/network.py @@ -9,6 +9,8 @@ import struct import logging import time +from .constants import STATS_CONNECTION_DELAY + logger = logging.getLogger('network') @@ -37,11 +39,11 @@ def check_monitor(monitor): """Check monitor socket for events""" try: event_monitor = monitor.recv(zmq.NOBLOCK) + event_id, event_name, event_value = read_socket_event(event_monitor) + event_endpoint = monitor.recv(zmq.NOBLOCK) except zmq.Again: return None - event_id, event_name, event_value = read_socket_event(event_monitor) - event_endpoint = monitor.recv(zmq.NOBLOCK) logger.debug(f'Monitor: {event_name} {event_value} endpoint {event_endpoint}') return (event_id, event_value) @@ -104,6 +106,9 @@ class RconConnection: def close(self): """Close connection""" + if self.monitor: + self.monitor.setsockopt(zmq.LINGER, 0) # Don't wait for unsent messages + self.monitor.close() if self.socket: self.socket.setsockopt(zmq.LINGER, 0) # Don't wait for unsent messages self.socket.close() @@ -143,7 +148,7 @@ class StatsConnection: logger.debug('Setting ZMQ_SUBSCRIBE to empty (all messages)') self.socket.setsockopt(zmq.SUBSCRIBE, b'') - time.sleep(0.5) + time.sleep(STATS_CONNECTION_DELAY) self.connected = True logger.info('Stats stream connected')