#javascript #django #websocket #django-channels
#javascript #django #websocket #django-каналы
Вопрос:
В настоящее время я изучаю, как использовать Django channels для подключений к websocket, и до сих пор я получил websocket для фактического подключения, но когда я отправляю ему данные, он их не получает.
Это мой consumers.py
class WSConsumer(AsyncConsumer):
async def websocket_connect(self, event):
print('connected', event)
await self.send({
'type': 'websocket.accept'
})
await self.send({
'type': 'websocket.send',
'message': 'TEST'
})
print('sent')
async def websocket_disconnect(self, event):
print('disconnected', event)
async def websocket_receive(self, event):
print('received', event))
Это мой javascript на интерфейсе
const roomName = JSON.parse(document.getElementById('room-name').textContent);
const WSocket = new WebSocket(
'ws://'
window.location.host
'/ws/room/'
roomName
'/'
);
WSocket.onopen = function(e) {
console.log('websocket has connected');
};
WSocket.onmessage = function(e) {
console.log(e);
};
WSocket.onclose = function(e) {
console.error('websocket closed unexpectedly');
};
Ответ №1:
Вупс только что понял, что я дурак на месте мужчины.
В приведенном ниже коде я изначально написал
await self.send({
'type': 'websocket.send',
'message': 'TEST'
})
когда это должно быть
await self.send({
'type': 'websocket.send',
'text': 'TEST'
})
Он должен иметь тип «текст» вместо «сообщение»