从python代码连接到Flask websocket [重复]

Posted

技术标签:

【中文标题】从python代码连接到Flask websocket [重复]【英文标题】:Connect to Flask websocket from python code [duplicate] 【发布时间】:2019-05-27 19:35:37 【问题描述】:

我对在 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)发现了几个带有“工作”示例的帖子,但实际上它们都不起作用。

那么有可能做我需要的吗?如果是,该怎么做?如果没有,有什么替代方案?

【问题讨论】:

【参考方案1】:

flask sokets.io 实际上不是 websockets,它们是 SocketsIO。如果有人想在他的烧瓶应用程序中集成真正的 WebSocket,他可以使用this 项目。

【讨论】:

以上是关于从python代码连接到Flask websocket [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python Flask SQLAlchemy 容器无法连接到 MySQL 容器

在 dockerized 环境中无法从 Flask 连接到 Kafka

使用 python 连接到烧瓶 websocket

无法通过 Python Elastic Beanstalk 中的 Flask SQLAlchemy URI 连接到 AWS MySQL RDS 实例

我无法从其他设备连接到Flask服务器(=不是从localhost)

FLASK python web:MySQLdb._exceptions.OperationalError:(2002,“无法通过套接字'/tmp/mysql.sock'连接到本(代码