【问题标题】:Issue with passing parameters in socket.emit()在 socket.emit() 中传递参数的问题
【发布时间】: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


【解决方案1】:

回答我自己的问题!

我检查发现这条线有问题 const name = document.querySelector('#displayname').data("displayname");

现在它运行良好。我相信一定是 socket.emit() 部分造成了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多