-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebsocket_client.py
More file actions
74 lines (57 loc) · 1.69 KB
/
websocket_client.py
File metadata and controls
74 lines (57 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
from asyncio import sleep
from dotenv import load_dotenv
import os
import socketio
import logging
from base_logger import logger, LOGLEVEL
logger = logger.getLogger(__name__)
load_dotenv()
if LOGLEVEL == 'DEBUG':
sio = socketio.AsyncClient(logger=True, engineio_logger=True)
else:
sio = socketio.AsyncClient()
MINER_UUID = os.getenv('MINER_UUID')
USERNAME = os.getenv('USERNAME')
API_URL = os.getenv('API_URL')
namespace = '/miner'
@sio.event
async def send_share_update(data):
logger.info('sending share update')
response = await sio.emit('share_update',
(os.getenv('MINER_UUID'),
data)
)
# logger.info('send_share_update' + response)
logger.debug(response)
@sio.event
async def send_health_update(data):
logger.info('sending health update')
response = await sio.emit('health_update',
(os.getenv('MINER_UUID'),
data)
)
# logger.info("send_health_update" + response)
logger.debug(response)
return response
@sio.event
async def disconnect():
logger.warning("disconnected from server")
@sio.event
async def connect():
logger.info("connection established")
await sio.emit('connect')
async def connect_server():
connected = False
while not connected:
try:
logger.info("connecting to server")
await sio.connect(API_URL)
await sio.wait()
except:
logger.warning("connection error")
else:
connected = True
logger.info(sio.sid)
sleep(5)
async def run():
await sio.wait()