team-3/src/c3nav/mesh/consumers.py

34 lines
1 KiB
Python
Raw Normal View History

from channels.generic.websocket import AsyncWebsocketConsumer
from c3nav.mesh import messages
class MeshConsumer(AsyncWebsocketConsumer):
async def connect(self):
2022-04-06 17:25:46 +02:00
print('connected!')
await self.accept()
async def disconnect(self, close_code):
2022-04-06 17:25:46 +02:00
print('disconnected!')
pass
2022-04-06 22:56:08 +02:00
async def send_msg(self, msg):
print('Sending message:', msg)
await self.send(bytes_data=msg.encode())
async def receive(self, text_data=None, bytes_data=None):
if bytes_data is None:
return
msg = messages.Message.decode(bytes_data)
print('Received message:', msg)
if isinstance(msg, messages.MeshSigninMessage):
2022-04-06 22:56:08 +02:00
await self.send_msg(messages.MeshLayerAnnounceMessage(
2022-04-06 17:25:46 +02:00
src='00:00:00:00:00:00',
dst=msg.src,
layer=messages.NO_LAYER
2022-04-06 22:56:08 +02:00
))
await self.send_msg(messages.ConfigDumpMessage(
src='00:00:00:00:00:00',
dst=msg.src,
))