Files
igncore/modules/standard/datanet/ws_worker.py
T

39 lines
1001 B
Python

import json
from websocket import create_connection
from core.dict_object import DictObject
from core.logger import Logger
class WebsocketRelayWorker:
def __init__(self, inbound_queue, url, proxy):
self.logger = Logger(__name__)
self.inbound_queue = inbound_queue
self.url = url
self.ws = None
def run(self):
try:
self.ws = create_connection(self.url)
self.logger.info(f"Connected to Datanet Relay!")
self.inbound_queue.append(DictObject({"type": "connected"}))
result = self.ws.recv()
while result:
obj = DictObject(json.loads(result))
self.inbound_queue.append(obj)
result = self.ws.recv()
self.ws.close()
except ConnectionRefusedError:
pass
def send_message(self, message):
if self.ws:
self.ws.send(message)
def close(self):
if self.ws:
self.ws.close()