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

26 lines
782 B
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
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 17:25:46 +02:00
await self.send(bytes_data=messages.MeshLayerAnnounceMessage(
src='00:00:00:00:00:00',
dst=msg.src,
layer=messages.NO_LAYER
).encode())