Django Channels onmessage не запускается
Я не знаю, почему onmessage не запускается в Javascript, когда я отправляю что-то типа 'websocket.message'. Метод websocket_receive предположительно отправляет что-то в websocket.message, потому что 'successfully updated data' печатается каждый раз, когда я открываю соединение. Проблема в том, что я не вижу консольного вывода в событии onmessage в JS.
consumers.py
class ActivityStatus(SyncConsumer):
def websocket_connect(self, event):
self.room_name = 'activity'
self.send({
'type': 'websocket.accept'
})
async_to_sync(self.channel_layer.group_add)(self.room_name, self.channel_name)
def websocket_receive(self, event):
dict_received = json.loads(event['text'])
user = CustomUser.objects.get(username=dict_received['user'])
user.is_online = True
user.save()
async_to_sync(self.channel_layer.group_send)(
self.room_name,
{
'type': 'websocket.message',
'username': dict_received['user']
}
)
print('succesfully updated data')
html javascript
const activityUrl = 'ws://' + window.location.host + '/ws/active/';
const activityWS = new WebSocket(activityUrl);
activityWS.onopen = function(event) {
console.log('connection is onpened');
activityWS.send(JSON.stringify({
'user': '{{ request.user.username }}'
}));
}
activityWS.onmessage = function(event) {
console.log(event)
console.log("Message is received");
}