问题标签 [flask-socketio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2690 浏览

python - 使用烧瓶的 socketio 扩展从线程发射

我想向套接字客户端发出延迟消息。例如,当一个新的客户端连接时,应该向客户端发出“检查开始”消息,并且在特定秒后应该发出来自线程的另一条消息。

但是由于上下文问题,代码不起作用。我明白了

是否可以从线程发射?

0 投票
1 回答
1069 浏览

python - 在 SocketIO 命名空间中使用烧瓶会话数据时出错

我正在尝试在用户的 id 命名空间上监听新的 socketIO 连接。用户 ID 存储在烧瓶会话对象中。

此代码产生以下错误:

如何让上述连接侦听器在请求上下文中运行?

谢谢!

0 投票
1 回答
119 浏览

python-2.7 - 运行数据库查询时 Flask.socket_io 阻塞调用

我正在尝试socket_io与我的烧瓶应用程序一起使用。问题是当我运行数据库查询时,比如下面的 url_route 函数。页面第一次正确加载但连续调用时,进程进入阻塞状态。即使 KeyboardInterrupt (Ctrl + c) 终止了其中一个 python 进程,我也必须手动杀死另一个。

一个明显的解决方案是使用缓存并使用另一个脚本在数据库上运行查询。有没有其他可能的解决方案可以避免运行单独的脚本?

同样在删除import flask.ext.socketio 和使用app.run(host='0.0.0.0')而不是socketio.run(app,host='0.0.0.0')应用程序时运行完美。所以我认为它的异步 gevent 调用以某种方式阻塞了进程。

0 投票
1 回答
1467 浏览

pandas - flask-socketio 每个用户一个房间?昂贵的?

我有一个运行 pandas 的烧瓶 webapp 来在后端进行一些数据分析。

现在,我采取了一种天真的方法,即使用 AJAX 让用户将查询发送回服务器并与数据进行交互。但事实证明,每个请求都有很多开销,每次我需要将数据重新加载到熊猫/内存中,这是非常重复的。

我在想 socketio 在这里可能很有用 - 我会打开一个套接字连接,这样一旦文件加载到 pandas 中,用户就可以通过套接字以更少的开销更响应地交互和查询数据。

所以我现在的问题是:

  • 我应该为每个用户打开一个房间,因为用户不需要相互交互吗?
  • 这是否按比例为每个用户开放一个房间?
  • 命名空间在哪里适合?我是否将命名空间分配给网站的不同部分,并在每个命名空间下为每个用户进一步打开房间?
  • 或者我应该产生一个猴子补丁线程吗?每个用户的 Greenlet ?
0 投票
1 回答
537 浏览

python - Heroku Flask-SocketIO 错误 __init__() 得到了一个意外的关键字参数 'server_hostname

我正在开发一个使用Flask-SocketsIO. 在尝试部署 webapp 时,heroku我遇到了这个问题:

如何解决这个问题?

0 投票
3 回答
5674 浏览

python - Exception gevent.hub.LoopExit: LoopExit('此操作将永远阻塞',)

使用 Websockets 运行我的 Flask 应用程序时,我总是收到此错误。我试图遵循本指南 - http://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent

我有一个烧瓶应用程序,它为我的网络嗅探器提供 GUI 界面。嗅探器位于线程内部,如下所示:( l 是我的嗅探器的线程;isRunning 是一个布尔值,用于检查线程是否已经在运行)

嗅探器在没有 socketio 的情况下运行良好,我能够在遍历我的 gui 时嗅探网络。但是,当我在代码中包含 socketio 时,我首先看到 socketio 在我的索引页面中工作,我能够接收来自的消息服务器到页面。我也可以很好地遍历我的 GUI 中的其他静态页面;但是,激活我的线程网络嗅探器会使我的浏览器挂断。我总是得到 Exception gevent.hub.LoopExit: LoopExit('This operation will block forever',) 错误,当我重新运行我的程序时,控制台会说该地址已在使用中。在我看来,发生这种情况时我可能没有正确关闭我的套接字。我也认为某些操作是基于错误阻塞的。我的 python 烧瓶应用程序中的代码如下所示

这是我的索引页面中的代码。

0 投票
0 回答
348 浏览

python - 用于 python 的 Socket IO 1.x 服务器库

是否有任何用于 python 的套接字 io 1.x 服务器库?我找到了https://github.com/miguelgrinberg/Flask-SocketIO但只支持 socket io 版本 0.9.16,这是作者说的:

请不要使用新的 socket.io 1.0 客户端库,这是一个最新版本,可能不受项目 gevent-socketio 支持。请暂时使用 0.9.16。https://github.com/miguelgrinberg/Flask-SocketIO/issues/33

请帮我 :)

0 投票
1 回答
1662 浏览

unix - flask-socketio + gunicorn + nginx 通过 unix 套接字文件 [Errno -2]

我在 Flask 上创建网站。与服务器的所有通信都通过 WebSockets。当我使用带有 TCP/IP 的 gunicorn 时:

一切正常。但是当我使用 Unix 套接字文件时:

我在日志中有错误:

我该如何解决这个错误?

0 投票
1 回答
2112 浏览

python - Flask 和 Flask-SocketIO 集成和导入错误

我正在尝试将 Flask-SocketIO 与我的 Flask 应用程序集成。

出于某种原因,我收到一个导入错误,该错误是由 from .. import socketio我的 events.py 中的 触发的,我不知道为什么。

我将非常感谢提供的任何帮助。

应用程序.py

工厂.py

主/____init____.py

主/事件.py

0 投票
0 回答
1895 浏览

python - 对 Flask 蓝图和 socketio 的正确实现感到困惑

我有一个 Flask 应用程序,我已经对其进行了重组以利用蓝图。应用程序运行,一切似乎都正常,除了 SocketIO 和我的 socketio.on 事件。我从来没有看到 SocketIO 和 web 套接字尝试在 Chrome 调试器中连接或断开连接,它曾经说过的所有内容都是挂起的。我在这里检查了 Flask SocketIO Chat 示例,并得到了一些想法。我将所有事件移回了我的views.py。我似乎无法弄清楚为什么我的 sockio.on 事件没有被调用或触发。这是我的代码。应用程序.py

工厂.py

主要/_init_.py

主/views.py

静态/js/application.js