Мне нужно поддерживать соединение сокетов на нескольких страниц, URLRouter такой:
URLRouter([
path('device/<device_name>',IndicatorConsumer),
path('add',IndicatorConsumer),
path('', IndicatorConsumer)
])
В консьюмерах так:
async def websocket_connect(self,event):
print('connection succefull ', event)
await self.send({
'type': 'websocket.accept'
})
self.device_id = self.get_device_id(self.scope['url_route']['kwargs']['device_name'])
Через
scope
мне нужно получить
device_name
, чтобы отправить его в другую функцию, но скоуп почему то ищет это на всех страницах, которые есть в
URLRouter
. Так, например, в /add сокет сразу закрывается, потому что он не может найти там
device_name
.
На страницах с device все работает хорошо, на других получаю ошибку:
Exception inside application: 'device_name'