--- /dev/null
+from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
+
+
+
+class PlomWebSocket(WebSocket):
+
+ def handleMessage(self):
+ if self.data == 'QUIT':
+ self.sendMessage('BYE')
+ self.close()
+ else:
+ for connection_id in self.server.clients:
+ if self.server.clients[connection_id] == self:
+ self.server.queue.put((connection_id, self.data))
+
+ def handleConnected(self):
+ import uuid
+ print('CONNECTION FROM:', self.address)
+ connection_id = uuid.uuid4()
+ self.server.clients[connection_id] = self
+
+ def handleClose(self):
+ print('CONNECTION CLOSED FROM:', self.address)
+ for connection_ids in self.server.clients:
+ if self.server.clients[connection_id] == self:
+ del self.server.clients[connection_id]
+
+ def put(self, msg):
+ self.sendMessage(msg)
+
+
+
+class PlomWebSocketServer(SimpleWebSocketServer):
+
+ def __init__(self, queue, port, *args, **kwargs):
+ super().__init__('', port, PlomWebSocket)
+ self.queue = queue
+ self.clients = {}
+
+ def serve_forever(self):
+ self.serveforever()
+
+ def server_close(self):
+ self.close()
+