【发布时间】:2019-12-10 09:44:08
【问题描述】:
document.querySelector('#sendmessage').onclick = () => {
const channel = "sports";
const name = document.querySelector('#displayname').data("displayname");
const msg = document.querySelector('[name="message"]').value;
const time = timeStamp();
//message(n,d,t);
socket.emit('updatemessage', {'channel':channel, 'name':name, 'msg':msg, 'time':time});
}
我在 socket.emit() 部分中传递这四个参数(通道、名称、味精、时间)时遇到问题。我需要将它们传递给烧瓶服务器以存储消息详细信息。我可以传递多个参数吗?如果没有,我该如何处理?
编辑: 烧瓶sn-p
@socketio.on('updatemessage')
def updatemessage(data):
print("initialised")
channel = data["channel"]
name = data["name"]
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)
实际上我正在尝试将消息数据存储在烧瓶服务器的全局变量中
【问题讨论】:
-
您可以在事件名称之后发送任意数量的参数。参考:socket.io/docs/client-api/…
-
@RajaSimon 当我运行烧瓶服务器时,我添加了用于调试的打印语句,这些语句没有显示在终端上,所以我认为 socket.emit() 没有到达指定的事件烧瓶服务器中的“更新消息”。
-
您也可以显示您的服务器代码吗?烧瓶服务器运行后你点击发送消息了吗?
-
@RajaSimon 我已经编辑了描述。是的,在启动烧瓶服务器后,我点击了发送消息按钮。
-
嘿,我检查了一下,发现这条线
const name = document.querySelector('#displayname').data("displayname");存在一些问题,现在它运行良好。我相信一定是socket.emit()部分造成了问题@RajaSimon
标签: javascript flask websocket socket.io flask-socketio