问题标签 [flask-sockets]

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 回答
188 浏览

reactjs - React + Flask-Socket.io:关闭浏览器时来自客户端的套接字断开事件延迟?

我的反应组件:

烧瓶:

现在,如果我按回浏览器(使用 React Router),组件会卸载并且套接字会立即断开连接。但是,如果我关闭选项卡,套接字只会在大约一分钟后断开连接。我该如何做到这一点,以便在浏览器/选项卡关闭时套接字断开连接(它在 Vanilla JS 上的工作方式)?

0 投票
0 回答
66 浏览

python - 如何使用 okhttp3 连接到烧瓶套接字后端

我相当有信心这是一个新问题,这有点令人不安,但如果之前已经解决了这个问题,请告诉我。我也只是从 websockets 开始。我知道 socket.io 和普通 websockets 之间的区别。我尝试将前者用于流式传输 jpeg 数据,但它不能胜任任务(我正在寻找 30 fps,并且在保持连接不到一分钟后会出现巨大的延迟峰值)我找到了这篇文章,所以我没有继续进行。 https://github.com/socketio/socket.io/issues/1175

https://github.com/TwilioDevEd/mediastreams-consume-websockets-flask/blob/master/app.py教我如何设置flask-sockets 后端和https://medium.com/@ssaurel/learn- to-use-websockets-on-android-with-okhttp-ba5f00aea988教会了我 okhttp3。另请注意,我使用 okhttp3 的唯一原因是因为我知道它,并假设 websockets 可以与客户端/服务器一起使用,但事实并非如此。

这是 okhttp3 客户端上 onFailure 监听器的打印输出。

在服务器端,我可以报告没有建立连接。

这是我在后端的代码。(打算通过 websocket 发送 jpeg 帧,因此是相机对象)

我正在通过 gunicorn 运行烧瓶后端。我使用的命令直接来自烧瓶套接字页面。

如果有更好的方法可以做到这一点,那么我会全力以赴。

0 投票
1 回答
48 浏览

python - 无法使用 flask_socketio 向客户端发送消息

我正在尝试实现flask_socketio的非常基本的用法来向客户端发送一些数据。代码如下:

服务器.py

索引.html

这样做时python server.py,我正在连接 Websocket!在浏览器控制台中,仅此而已,没有进一步的输出。

我通过将以下代码粘贴到server.py的开头尝试了那个 eventlet 技巧,但这没有帮助:

有任何想法吗?

0 投票
1 回答
64 浏览

flask - Socket handshake error when using gunicorn

I have a flask app that processes a web socket stream of audio from Twilio.

The app works fine without gunicorn but when I start it with gunicorn I get only the first message of the socket (connect) and an unsuccessful handshake. Here is how the app looks:

When I start the app directly using python flaskapp.py it works ok.

When I start it using gunicorn by writing:

gunicorn -k flask_sockets.worker --bind 0.0.0.0:5055 --log-level=bug flaskapp:app

this is where the connection "hangs" and carries no further than the initial connection, apparently due to the handshake failing.

It's important to note that I haven't "gevent monkey patched" the code, but I'm not sure if it has anything to do with the problem.

Any idea will much be appreciated!

0 投票
1 回答
930 浏览

sockets - 如何正确安装flask-socketIO?

我在我的 Mac 上安装了多次 Flask-socketio,仔细阅读说明并安装要求(eventlet/gevent)。虽然当我运行我的简单代码进行测试时,它要么说我没有导入模块,要么什么都不显示,直到我在浏览器中打开 index.html 然后显示: The client is using an unsupported version of the Socket.IO or Engine.IO protocols (further occurrences of this error will be logged with level INFO)

这是我的 app.py 代码:

这是我的终端窗口: 在此处输入图像描述

这是我的 index.html 代码(如果需要):

谢谢您的帮助

0 投票
0 回答
16 浏览

python-3.x - Flask-sockets Room 实现和持续数据包更新

我正在尝试使用 Flask-sockets 每 10 秒向客户端发送一次关于条件更新的连续更新。

我遇到了一个问题。我似乎无法创建一个新线程,并且在任何地方都没有可用于为不同输入设置拆分房间的文档

这是我上面的代码。我不确定如何为不同的零件编号执行多个进程,或者基本上在连接处于活动状态时将其作为一个单独的线程在后台运行。会喜欢一些帮助。

谢谢!

0 投票
0 回答
96 浏览

flask - Flask SocketIO 连接在生产中失败

在我检查了socketio在常规运行服务器上运行良好并且还在本地使用带有eventlet的gunicorn之后,我刚刚在开发服务器上部署了我的flask应用程序,现在我部署了我的flask应用程序并且当我打开任何页面(HTTP)时它运行良好API左右,但是当我尝试连接到 websockets 时,它在浏览器的控制台选项卡中显示以下错误

这是我使用 socketio cdn 的前端

我在这里将“路径”设置为正确的 socket.io url,如果我试图删除它并输入它给出的 url

所以我添加它以将其重定向到正确的 url,但它无法使用 ws 连接它,如上所示

我在服务器上使用这个命令来运行烧瓶

这是我的 wsgi 文件

'socket_handle' 函数只是将带有套接字装饰器的 join 和 message_handle 函数附加到它们,我认为有些东西阻止了服务器在 ws 上工作,但我不知道为什么

我知道这需要作为 ASGI 而不是 WSGI 运行,但正如 socketio 文档所说,我认为使用 eventlet 可以解决这个问题,但我也尝试将我的 wsgi.py 文件替换为此

当我运行 Gunicorn 命令时,我得到了这个

我正在使用最新的烧瓶和 socketio 版本

0 投票
1 回答
79 浏览

python - Flask SocketIO Web 应用程序拒绝接受来自 python 文件的连接

我正在尝试使用网络套接字将一些数据发送到 Flask 应用程序。从来没有做过这样的事情,所以我可能做错了什么,但到目前为止我还不能接受一个连接。

目前我有 2 个 python 文件,server.pyclient.py.

server.py启动烧瓶服务器和网络套接字,然后client.py应该能够连接到它,发送一条消息,该消息打印到服务器控制台,然后服务器应该将该消息回显到客户端将接收到的位置并打印到客户端控制台。

但是现在Handshake status 400 BAD REQUEST当客户端尝试连接时出现错误。

这是我正在使用的代码:

server.py :

client.py :

我认为该server.py文件有问题,但是,我一直在流动Flask-SocketIO 文档,它与他们的入门示例几乎相同。但是话又说回来,我对此也知之甚少,所以我不知道问题出在哪里。

感谢您提供任何帮助!