Javascript socket.emit()与flask中定义的事件不起作用

Javascript socket.emit()与flask中定义的事件不起作用,javascript,flask,websocket,socket.io,flask-socketio,Javascript,Flask,Websocket,Socket.io,Flask Socketio,我有这个Javascript代码片段 document.addEventListener('click', event => { const element = event.target; if (element.className === 'list'){ channel = element.getAttribute('data-channel'); docum

我有这个Javascript代码片段

        document.addEventListener('click', event => {
            const element = event.target;
            if (element.className === 'list'){
                channel = element.getAttribute('data-channel');
                document.querySelector('#chatarea').innerHTML = "";
                socket.emit('loadmessage', {'channel': channel});
                localStorage.setItem('channel', channel);
            }

            if (element.className === 'sendmessage'){
                const channel = "sports";
                const name = document.querySelector('#displayname').data("displayname");
                const msg = document.querySelector('[name="message"]').value;
                const time = timeStamp();
                socket.emit('newmessage', {'channel': channel, 'name': name, 'msg': msg, 'time': time});
            }
        });

这是烧瓶部分

@socketio.on('loadmessage')
def loadmessage(data):
    print(f"loading the existing messages of {data}")
    channel = data["channel"]
    m = channels[channel]
    print(f"m is {m}")
    emit('message loader', m, broadcast=False)

@socketio.on('newmessage')
def updatemessage(data):
    print("initialised")
    channels[channel][name][0] = data["msg"]
    channels[channel][name][1] = data["time"]
    print(f" this is the update channel info : {channels}")
    m = channels[channel]
    print(f"m is :  {m}")
    emit('message loader', m, broadcast=True)


现在的问题是,当我单击类名为
sendmessage
的按钮时,然后单击
socket.emit('newmessage',{'channel':channel,'name','msg':msg,'time':time})不起作用,因为我看不到任何打印语句在终端上显示我指定的烧瓶中
@socket.on(sendmessage)
部分的输出。另一方面,loadmessage工作正常。我不能正确地理解它,因为我是套接字新手。

您的代码检查
classname=='list'
。这可能是问题所在吗?@Miguel我也试着把事情分开,但运气不好。“new message”的socket.emit()未链接到flask,否则我将在终端中有一个输出,作为我为调试设置的打印语句。嘿,我检查了它,发现这行
const name=document.querySelector('#displayname').data(“displayname”)有一些问题现在它工作得很好。感谢您将我的注意力吸引到Javascript上,因为我相信它一定是造成@Miguel问题的
socket.emit()
部分