Я занимаюсь разработкой программ для WebSocket в Django. Я хочу получить запрос от клиента (ReactJS) и отправить сигналы потребителю WebSocket, а затем потребитель WebSocket отправляет сообщения клиенту. Как решить такую проблему?
Я пробовал следующим образом.
urlpatterns = [
url(r'^updatesignal/$',updatesignal),
url(r'^stopsignal/$',stopsignal),
]
@api_view(['POST'])
def updatesignal(request):
print("update")
consumers.isconnected = 1
return Response("update signal")
@api_view(['POST'])
def stopsignal(request):
print("stop signal")
consumers.isconnected = 0
return Response("stop signal")
from channels.generic.websocket import AsyncWebsocketConsumer
import json
import asyncio
isconnected = 0
class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
print("connect")
await self.accept()
while isconnected == 1:
await asyncio.sleep(2)
print("true")
# obj = # do_something (Ex: constantly query DB...)
await self.send(text_data=json.dumps({
'message': "aaa"
}))
async def disconnect(self, close_code):
# Leave room group
pass
async def receive(self, text_data):
# Receive message from WebSocket
.....
Но потребитель WebSocket запускается через 10 секунд после получения запроса на обновление сигнала. Как решить эту проблему?