首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flask-socketio事件未到达前端

flask-socketio事件未到达前端
EN

Stack Overflow用户
提问于 2021-02-23 19:16:09
回答 1查看 17关注 0票数 0

我已经创建了一个小的网络应用程序,并想使用socketio。

我在javascript中使用了socket.io v.3,在flask.socketio v 4.0.0和python-socketio v 5.0.4中使用了python v 5.0.1

我可以成功地将事件从客户端发送到服务器,尽管我无法与之通信。

我的烧瓶代码是:

代码语言:javascript
复制
@socketio.on('submit')
def submit(data):
    print('received message: button click')
    print(data)
    emit('submit',{'complete': 66, 'stage': 'deploying groups'})
    print('data send')

我的javascript看起来像这样:

代码语言:javascript
复制
    var socket = io();
    socket.on('*', function(data) {
      document.getElementById("Project Name").value = 'test'
      });
    socket.on('submit', function(data) {
      document.getElementById("Project Name").value = 'test'
      });

服务器端代码执行,我在flask控制台日志中看到数据发送,尽管客户端从来没有做过任何事情。我尝试在控制台中运行该命令,并成功地设置了字段的名称。我还尝试过将socket.on定义复制粘贴到控制台中,但也不起作用。

如果我在控制台中运行此命令,我会看到已定义的函数:

代码语言:javascript
复制
 socket.listeners("submit");

我期望"project name“的值更新为test。

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 16:55:43

我找到了我的问题所在,我有另一个函数,它也创建了一个套接字。

我发现你应该在代码中只运行一次var socket = io();,而不是每个函数运行一次。

我的问题是,我开始进行app->后端工作,并在尝试返回某些东西时卡住了,因为我在收到后端的应答之前重新启动了套接字。

TLDR;每页只定义一次套接字,而不是每个函数一次。再次定义它将重置您的会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66332082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档