python-okx/okx/websocket/WebSocketFactory.py

34 lines
895 B
Python

import asyncio
import logging
import ssl
import certifi
import websockets
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("WebSocketFactory")
class WebSocketFactory:
def __init__(self, url):
self.url = url
self.websocket = None
self.loop = asyncio.get_event_loop()
async def connect(self):
ssl_context = ssl.create_default_context()
ssl_context.load_verify_locations(certifi.where())
try:
self.websocket = await websockets.connect(self.url, ssl=ssl_context)
logger.info("WebSocket connection established.")
return self.websocket
except Exception as e:
logger.error(f"Error connecting to WebSocket: {e}")
return None
async def close(self):
if self.websocket:
await self.websocket.close()
self.websocket = None