问题标签 [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 回答
1763 浏览

python - 如何在 Flask-SocketIO 中向测试客户端推送通知?

我正在尝试作为客户端接收来自服务器的推送;使用我的测试客户端如下:

客户:

服务器:

服务器应该正在推送和调用hit_client通道,但这并没有被触发。但是,socket_client.get_received()有发出的数据。我认为 WebSockets 的全部意义在于双向通信(即推送函数触发器)!

这是一个非常简单的设置,它甚至似乎都不起作用......任何帮助都将不胜感激。几个小时以来我一直在摇头。

0 投票
1 回答
1671 浏览

jquery - SocketIO在JS中没有收到消息

我正在尝试使用 socket.io.js 应用程序实现一个 FlaskSocketIO,用于前端和我的 Web 套接字服务器之间的实时通信

前端代码如下所示:

我在 Flask 中使用的代码是:

在 FlaskSocketIO 方面,我可以成功接收到消息,但是当我发出“我的响应”消息时,我可以看到来自 Google Chrome 的“网络”选项卡中列出的消息,如下所示,但根据我上面的 javascript 代码没有对“我的响应”采取任何操作' 事件:

话虽如此,前端和flasksocketsio之间的通信已成功进行,但是这部分代码没有任何反应......

我尝试过使用 alert(msg) 甚至 console.log(msg) 但即使我看到收到的消息它们也没有显示任何东西......任何线索可能是错误的?也许 Flask 为 SocketIO JS 插件生成错误格式的消息?

0 投票
1 回答
2214 浏览

python - 烧瓶套接字和 ZeroMQ

我正在zeromq尝试使用 websocket 将发布/订阅消息发送到浏览器。以下“有效”,因为消息确实通过 websocket 发送。但是,尝试重新加载页面只是挂起,因为我猜while True循环被阻塞了。我认为该gevent.sleep()调用将允许上下文切换,但显然不是。知道如何让所有这些部分一起工作吗?

0 投票
2 回答
13225 浏览

nginx - 混合内容:https 的页面是通过 https 加载的,但请求不安全

我正在使用 Nginx + flask-socketio + aws elb,当在 https 上加载 URL 时,我收到以下与 Nginx 和套接字有关的错误消息,请对此提供帮助,

0 投票
0 回答
251 浏览

python - 使用gevent和Flask实现websocket,如何实现并发?

所以我使用Flask_Socket来尝试在 Flask 上实现一个 websocket。使用它,我希望在数据发生变化时通知所有连接的客户端。这是我的routes/index.py. 我遇到的问题是,当打开 websocket 连接时,它将一直处于notify_change循环中,直到套接字关闭,与此同时,其他路由/users无法访问。

这似乎是本质上的正常结果,while True:但是,我一直在网上寻找一种方法来解决这个问题,同时仍在使用flask_sockets并且没有任何运气。我在 GUnicorn 上运行服务器

flask/bin/gunicorn -b '0.0.0.0:8000' -k flask_sockets.worker app:app

我尝试通过做添加线程--threads 12但没有运气。

注意:我一次最多只能为 4 个用户提供服务,因此不需要扩展,也不需要对解决方案进行超优化。

0 投票
1 回答
1350 浏览

javascript - Python Flask-Sockets 在蓝图中不起作用

我正在试验Flask-Sockets。过去添加了对蓝图的支持,这是我真正需要的。

因此,在 JavaScript 中连接一个 websocket 并将端点设置为“echo”(即var ws = new WebSocket("ws://HOST:PORT/"+"echo"))可以完美地工作。我可以发送消息,它们会立即退回给我。

但是,当我想将此函数移动到蓝图时(在蓝图中play_socket,它不再起作用。假设我在 javascript 中将端点更改为“/status_ping”:

websocket 已从客户端成功连接,我可以通过print("HERE")def ping(socket):.

我发现如果我将while not ws.closed:循环体移动到标题上方(复制它),它就会“起作用”。但是,我不能使用它,因为我需要套接字将数据从服务器推送到客户端。执行此 while 循环时似乎出错了。由于某种原因,套接字立即关闭。更改while not ws.closed:while True:没有效果。

我试图尽可能多地隔离问题,但如果您需要更多信息,请告诉我。

编辑:蓝图的代码示例

上下文可用的主run.py文件以以下方式开始:app

0 投票
1 回答
683 浏览

python - 使用烧瓶套接字时工作人员超时

我正在尝试在现有的烧瓶 restful 应用程序中支持 websocket,它将 gunicorn 超时设置为 20 秒。我决定使用flask-sockets扩展,一切顺利,除了greentlet会在20秒后超时。

我假设 websocket 连接被视为普通的 http 请求,因此预计会在 greenlet 超时后返回响应。

我添加了以下代码并将 gunicorn worker_class 更改为geventwebsocket.gunicorn.workers.GeventWebSocketWorker

我应该如何处理这种情况?感谢您的任何建议。

添加输出:

0 投票
1 回答
2255 浏览

python - 从 Flask 视图发送 WebSocket 消息

我正在尝试制作一个使用 WebSockets 的 Flask 应用程序。Flask-sockets中的示例有效,但我将如何从常规视图发送消息?

类似于 Flask-SocketIO 如何使用.emit().send()-methods。

在下面的示例中(来自 Flask-Sockets 示例),例如,我希望能够从hello-view 广播消息。

0 投票
0 回答
46 浏览

python - aws Ec2 ubuntu - 导入名称中带有下划线的模块

我正在尝试在我的 EC2 实例上部署一些 python 程序。

在代码中有这一行:

从 flask_sockets 导入套接字

错误: ModuleNotFoundError:没有名为“flask_sockets”的模块

但是安装了flask_sockets,pip freeze给出:

烧瓶插座==0.2.1

像这样导入

从烧瓶插座进口插座

也不能正常工作。

有人知道可能出了什么问题吗?

0 投票
1 回答
289 浏览

python - Flask-Sockets keepalive

我最近开始flask-sockets在我的烧瓶应用程序中使用原生 WebSocket API 作为客户端。我想知道是否有适当的方法从服务器以一定的时间间隔发送 ping 请求作为 keepalive?

在浏览geventwebsocket图书馆时,我注意到了定义handle_ping(...),但它从未被调用过。有没有办法确定 WS 上的 ping 间隔?

有时我看到我的插座在一分半钟后就死掉了。

如果我将它们保存在一个列表中,我可能会启动一个单独的线程并每 30 秒手动向客户端发送一次 ping 操作码,但我觉得会有更好的方法来处理它。