在heroku上用eventlet部署Flask Socket.io应用。

问题描述 投票:0回答:1

我在一个免费的heroku实例上使用flask socket.io配置了eventlet。根据flask socket.io文档,我使用flask socket.io在免费的heroku实例上配置了eventlet。https:/flask-socketio.readthedocs.ioenlatest。 运转 socketio.run(app) 将会在安装了eventlet的情况下启动一个webserver。

我有一个本地 react web 应用程序,试图与该应用程序引擎实例建立 WebSocket 连接。该web应用使用socket.io,最初默认为轮询HTTP请求。这些请求都超时了--我无法建立Web socket连接。我不知道是什么原因导致了我的问题,是我的应用引擎配置还是我的flask socket.io设置。

这是我的flask socket.io的初始化代码。

app = Flask(__name__)
socketio = SocketIO(app)
socketio.init_app(app, cors_allowed_origins="*")
..
..
if __name__ == '__main__':
    socketio.run(app, debug=True)

这是我的Procfile

web: python3 server.py

这是试图建立连接的网络应用代码。

import io from 'socket.io-client'
const socketURL = "<app-engine-instance-url>:5000"
const socket = io.connect(socketURL)
python flask heroku socket.io flask-socketio
1个回答
0
投票

你提到了Heroku,然后换成了App Engine。我猜你还是指Heroku?

在Heroku上运行的应用程序必须遵守 $PORT 环境变量,并将网站放在该端口上。试试这个。

socketio.run(app, port=int(os.environ.get('PORT', '5000')))

然后从你的客户端应用程序连接到Heroku的应用程序的URL。

© www.soinside.com 2019 - 2024. All rights reserved.