python - 从 python 代码连接到 Flask websocket
问题描述
我有兴趣在 Flask 服务器和客户端之间创建双向交换。似乎 websockets 对于实现我的目标非常方便。但我坚持实施。我已经使用 Flask-SocketIO 创建了简单的 Flask 应用程序,如文档中所述:
from flask_socketio import SocketIO
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@socketio.on('message')
def handle_message(message):
print('received message: ' + message)
if __name__ == '__main__':
socketio.run(app)
客户端使用 websocket-client 包,如下所示:
from websocket import create_connection
ws = create_connection("ws://localhost:5000")
ws.send("hello world")
在这种配置中它不起作用。
我还尝试在服务器端使用 Flask-Sockets:
from flask import Flask
from flask_sockets import Sockets
app = Flask(__name__)
sockets = Sockets(app)
@sockets.route('/')
def echo_socket(ws):
while not ws.closed:
message = ws.receive()
print(message)
if __name__ == '__main__':
app.run()
它也不起作用。我在某些地方(例如there和there)发现了几篇带有“工作”示例的帖子,但实际上它们都不起作用。
那么有可能做我需要的吗?如果是,该怎么做?如果不是,有什么替代方案?
解决方案
flask sokets.io 实际上不是 websockets,它们是 SocketsIO。如果有人想在他的烧瓶应用程序中集成真正的 WebSocket,他可以使用这个项目。
推荐阅读
- python - 如何修复 Snowflake 数据库写入错误:snowflake.connector.errors.ProgrammingError) 001003 (42000)
- linux - 如何查找文件并在其上执行程序
- python - 用多数票过滤返回值变量
- css - 有什么方法可以直接从 Chrome devtools 中的“元素 > 样式”选项卡打开本地文件?
- json - 有没有办法获取字符串列表并创建一个 JSON 文件,其中键和值都是列表项?
- java - 关闭命令窗口时如何在生产模式下启动 Grail 应用程序而不终止会话?
- arrays - 如何使用 ngFor (nativescript) 在同一个列表中显示 2 组列表
- java - 如何在Java中for循环的每次迭代中更改线条的颜色
- python - 当尝试将一个数据框列添加到其他数据框时,它会给出 NAn
- html - 通过 CSS 导入字体问题