Linux下flask_uwsgi_websocket+uwsgi+nginx部署websocket+http后端


原本已有一个包含http接口的后端,使用flask+uwsgi部署
现需要给后端增加一个websocket接口,与原有http接口共用一个端口,因此做如下修改(仅列出增补修改的部分,非完整代码


安装依赖【linux环境】

pip install Flask-uWSGI-WebSocket
apt-get install build-essential libssl-dev python3-dev python3-venv

python代码

# 引入这个库
from flask_uwsgi_websocket import WebSocket
...
app = Flask(__name__)
# app = Flask(__name__)后增加以下这一行
sockets = WebSocket(app)

# 写websocket接口(原有其他http接口无需修改)
@sockets.route('/接口名')
def xxxxx(ws):
	...
    # ws.receive()接收消息
    message = ws.receive()
    # ws.connected判断连接是否还未断开
    while ws.connected:
        ...
        # ws.send()发送消息
        ws.send("xxx")
...

uwsgi配置

[uwsgi]
#指定端口
http=0.0.0.0:9876
# 增加以下几行
http-websockets = True
# 设置url地址最大长度, 默认长度是4096
buffer-size = 40960
....

nginx配置


    server {
        listen       7891;
        server_name  0.0.0.0;

        location ~ /xxxxx/ {
            proxy_pass http://localhost:9876;
            # 增加以下两行
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
      ....


参考链接

https://blog.csdn.net/qq_40292262/article/details/121877812
https://blog.csdn.net/yyt593891927/article/details/109260784

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值