当前位置: 首页 > news >正文

python+flask+flask-sockerio,部署后sockerio通信异常

前言

用python开发了一个flask web服务,前端用html,前后端通过socketio通信,开发环境,windows+miniconda+vscode,开发完成后本地运行没有问题,然后就开始部署,噩梦就开始了。

问题描述

程序是部署在公司的服务器上,运行在docker容器中,容器启动后运行脚本,前端页面跳转正常,但就是后端与前端的socketio通信不正常,具体表现为:前端的client与后端服务器建立连接之后,后端向前端发送的第一条消息还能接收到,后面的消息就收不到了,socketio.on监听不到消息,见隔一段时间sockerio.on(‘disconnect’)监听到断开,然后会重连,但是通信一直异常。

解决过程

通过上网搜索包括借助ai,一点点排查,首先网络问题可以排除,我的前后端代码在一起,部署在一个容器中,不会有网络通信的问题;再就是usgi部署的问题,我换了好几种方案,都不行,而且本地运行是可以的,也排除掉;然后就是库版本不兼容的问题,我把python库的版本严格保持与本地运行环境一致,还是没有解决;可疑性最大的就是跨域问题,一开始也怀疑过这个可能,根据网上的文章对flask-sockerio和eventlet也进行了跨域的配置,但是依然没解决。还有什么配置心跳间隔和超时时间也都试过了,没用。

耗了两天我实在没辙了,想放弃了,就直接用nginx做了反向代理,在本地运行脚本,临时先用着。在部署的过程当中就遇到了跨域问题,给flask-socketio添加了cors_allowed_origins参数,解决了。

后来就像先用nginx的方案临时代替,先用着,后面慢慢部署,然后最后运行了一次脚本,结果问题解决掉了。赶紧对比前后差异,发现问题在异步通信上。

添加这个之后就好了。

import eventlet
eventlet.monkey_patch()

起始之前用wsgi部署的时候就添加过了,在一个单独的脚本里,但是不知道当时是有啥其他问题没能成功,后来的调试都是运行的主脚本,没有这段代码,所以一直没有发现问题。

因为自己对sockerio的通信不是很熟,所以只能分析到这了,现在问题解决了,后面运行再看看是否有其他问题。

http://www.dtcms.com/a/158548.html

相关文章:

  • 大语言模型架构基础与挑战
  • layui获取无法获取表单数据,data.field一直为空
  • WPF使用SQLite与JSON文本文件结合存储体侧平衡数据的设计与实现
  • 泛型的诗意——深入C++模板的艺术与科学(模版进阶)
  • PostSwigger Web 安全学习:CSRF漏洞3
  • 【学习笔记1】一站式大语言模型微调框架LLaMA-Factory
  • C#本地使用离线ocr库识别图片中文本,工具包PaddleOCRSharp
  • Git Bash 下使用 SSH 连接出现 “Software caused connection abort” 问题
  • 从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 基础概念
  • Spark Streaming实时数据处理实战:从DStream基础到自定义数据源集成
  • 如何避免爬虫因Cookie过期导致登录失效
  • Kubernetes学习笔记-配置Service对接第三方访问
  • iOS 类与对象底层原理
  • 深度学习常见框架:TensorFlow 与 PyTorch 简介与对比
  • Postman接口测试: postman设置接口关联,实现参数化
  • 超级创新思路:基于CBAM-Transformer的强化学习时间序列预测模型(Python\matlab实现)
  • 【仿Mudou库one thread per loop式并发服务器实现】服务器边缘测试+性能测试
  • 小结: DHCP
  • Haply MinVerse触觉3D 鼠标—沉浸式数字操作,助力 3D 设计与仿真
  • 【QT】QT多线程
  • MySQL----查询
  • 计算机组成原理系列3--存储系统
  • 【C语言操作符详解(一)】--进制转换,原反补码,移位操作符,位操作符,逗号表达式,下标访问及函数调用操作符
  • 《代码整洁之道》全书归纳
  • SpringMVC 通过ajax 前后端数据交互
  • Scala集合操作与WordCount案例实战总结
  • Linux命令-iostat
  • w~嵌入式C语言~合集6
  • Spring中生成Bean的方式总结-笔记
  • 颠覆传统微商!开源AI智能名片链动2+1模式S2B2C商城小程序:重构社交电商的“降维打击”革命