我正在尝试为所有连接的用户修改页面上的HTML内容。当前,当使用使用者发送消息时,它仅将消息发送到启动了用于更新的初始消息的实例(即,如果用户按下通过发送WebSocket事件更改HTML内容的按钮,则仅其实例的内容页面已更改)。这是我目前的消费者:
class ScoreConsumer(AsyncConsumer):
async def websocket_connect(self, event):
print("connected ", event)
await self.send({
'type': 'websocket.accept'
})
async def websocket_receive(self, event):
print("receive ", event)
data = event.get('text', None)
print(data)
if data:
loaded_data = json.loads(data)
await self.send({
'type': 'websocket.send',
'text': loaded_data['message']
})
async def websocket_disconnect(self, event):
print("disconnected ", event)
这是初始化和处理消息的JavaScript(省略不必要的部分)
var loc = window.location;
var wsStart = 'ws://'
if (loc.protocol == 'https:'){
wsStart = 'wss://';
}
var endpoint = wsStart + window.location.host + loc.pathname;
var socket = new WebSocket(endpoint);
console.log(endpoint);
socket.onmessage = function(e){
console.log("Got websocket message " + e.data);
var data = e.data;
console.log(data);
if (data == 'connected') {
document.querySelector('#bluescore').innerHTML = "User Connected";
} else {
document.querySelector('#redscore').innerHTML = data;
}
}
document.querySelector('#test-button').onclick = function(e) {
var message = "Yee";
console.log("Help");
socket.send(JSON.stringify({
'message': message
}))
}
两个实例当前都没有收到对方发送的任何消息。