Javascript 在socket.emit()中传递参数时出现问题 document.querySelector(“#sendmessage”).onclick=()=>{ const channel=“体育”; const name=document.querySelector('#displayname').data(“displayname”); const msg=document.querySelector('[name=“message”]')。值; 常量时间=时间戳(); //消息(n,d,t); emit('updatemessage',{'channel':channel,'name':name,'msg':msg,'time':time}); }

Javascript 在socket.emit()中传递参数时出现问题 document.querySelector(“#sendmessage”).onclick=()=>{ const channel=“体育”; const name=document.querySelector('#displayname').data(“displayname”); const msg=document.querySelector('[name=“message”]')。值; 常量时间=时间戳(); //消息(n,d,t); emit('updatemessage',{'channel':channel,'name':name,'msg':msg,'time':time}); },javascript,flask,websocket,socket.io,flask-socketio,Javascript,Flask,Websocket,Socket.io,Flask Socketio,我在socket.emit()部分中传递这四个参数(通道、名称、消息、时间)时遇到问题。我需要将它们传递给flask服务器以存储消息详细信息。允许我传递多个参数吗?如果没有,我该如何处理 编辑: 烧瓶片段 @socketio.on('updatemessage')) def更新消息(数据): 打印(“草签”) 通道=数据[“通道”] 名称=数据[“名称”] 频道[频道][名称][0]=数据[“msg”] 频道[频道][名称][1]=数据[“时间”] 打印(f“这是更新频道信息:{channels

我在socket.emit()部分中传递这四个参数(通道、名称、消息、时间)时遇到问题。我需要将它们传递给flask服务器以存储消息详细信息。允许我传递多个参数吗?如果没有,我该如何处理

编辑: 烧瓶片段

@socketio.on('updatemessage'))
def更新消息(数据):
打印(“草签”)
通道=数据[“通道”]
名称=数据[“名称”]
频道[频道][名称][0]=数据[“msg”]
频道[频道][名称][1]=数据[“时间”]
打印(f“这是更新频道信息:{channels}”)
m=通道[通道]
打印(f“m为:{m}”)
emit('消息加载器',m,广播=True)

实际上,我正在尝试将消息数据存储在flask server的全局变量中,回答我自己的问题

我查了一下,发现这条线路有问题
const name=document.querySelector('#displayname').data(“displayname”)


现在它工作得很好。我相信一定是socket.emit()部分造成了问题

回答了我自己的问题

我查了一下,发现这条线路有问题
const name=document.querySelector('#displayname').data(“displayname”)


现在它工作得很好。我相信一定是socket.emit()
部分造成了问题

您可以在事件名称之后发送任意数量的参数。Ref:@RajaSimon当我运行flask服务器时,我添加了用于调试的打印语句,这些语句没有显示在终端上,因此我认为socket.emit()没有到达flask服务器中的命名事件“updatemessage”。您也可以显示服务器代码吗?您在flask服务器运行后单击sendmessage了吗?@RajaSimon我已经编辑了描述。是的,启动flask服务器后,我单击了sendmessage按钮。嘿,我检查了它,发现这一行
const name=document.querySelector('#displayname').data(“displayname”)有问题现在它工作得很好。我相信一定是
socket.emit()
部分造成了问题@rajasimon您可以在事件名称之后发送任意数量的参数。Ref:@RajaSimon当我运行flask服务器时,我添加了用于调试的打印语句,这些语句没有显示在终端上,因此我认为socket.emit()没有到达flask服务器中的命名事件“updatemessage”。您也可以显示服务器代码吗?您在flask服务器运行后单击sendmessage了吗?@RajaSimon我已经编辑了描述。是的,启动flask服务器后,我单击了sendmessage按钮。嘿,我检查了它,发现这一行
const name=document.querySelector('#displayname').data(“displayname”)有问题现在它工作得很好。我相信一定是
socket.emit()
部分造成了@RajaSimon的问题