WebSocket is already in CLOSING or CLOSED state解决方案

这篇具有很好参考价值的文章主要介绍了WebSocket is already in CLOSING or CLOSED state解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用flask + websocket来进行前后端交互的项目

前端发送send的时候,websocket一连接就中断,测试了心跳设置相应时间等各种方法,都没用,最后发现原来是flask的版本太高导致和gevent不兼容

无论前端怎么发送信息,flask的服务器端什么都没有:

服务器端代码:

from geventwebsocket.handler import WebSocketHandler

from gevent.pywsgi import WSGIServer

from geventwebsocket.websocket import WebSocket # 引这个模块为了注释中显示提示用

from flask import Flask, render_template,request
app = Flask(__name__)

@app.route('/my_app')
def my_app():
    return render_template('my_app.html')

@app.route('/my_ws')
def my_ws():
    print(request.environ)
    user_socket = request.environ.get('wsgi.websocket') # type:WebSocket
    while 1:
        msg = user_socket.receive()
        print(msg)
        user_socket.send(msg)

if __name__ == '__main__':
    # app.run()
    http_server = WSGIServer(('0.0.0.0',9527),app,handler_class=WebSocketHandler)
    http_server.serve_forever()

前端客户端代码:

<body>

我即将是Websocket

</body>

<script>

    var ws = new WebSocket("ws://127.0.0.1:9527/my_ws")

    ws.onmessage = function (MessageEvent) {

        console.log(MessageEvent.data);

    }

</script>

前端调试的时候老是报错:

WebSocket is already in CLOSING or CLOSED state解决方案

 最后将flask一系列的包都降级后,错误消失:

WebSocket is already in CLOSING or CLOSED state解决方案

解决流程: 

一开始的flask 的版本是2点多

Flask 降级

pip install Flask==1.1.2

ImportError: cannot import name 'escape' from 'jinja2

pip uninstall Jinja2

from flask) (1.1.0) Requirement already satisfied: Jinja2>=2.10.1

Pip install Jinja2==2.10.1

解决ImportError: cannot import name ‘soft_unicode‘ from ‘markupsafe‘

必须安装这个:pip install markupsafe==2.0.1

werkzeug 2.2.2 requires MarkupSafe>=2.1.1, but you have markupsafe 2.0.1 which is incompatible. 或者 ImportError: cannot import name 'json' from 'itsdangerous' (/Users/hyy/Desktop/项目/venv_37/lib/python3.7/site-packages/itsdangerous/__init__.py)

Pip install itsdangerous==2.0.1

ImportError: cannot import name 'BaseResponse' from 'werkzeug.wrappers' (/Users/hyy/Desktop/项目/venv_37/lib/python3.7/site-packages/werkzeug/wrappers/__init__.py)

Pip show werkzeug

Name: Werkzeug

Version: 2.2.2

继续降级:pip install werkzeug-1.0.1

Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

未捕获(在promise中)错误:侦听器返回true表示异步响应,但消息通道在收到响应之前关闭

WebSocket is already in CLOSING or CLOSED state解决方案

关闭浏览器的所有插件,这大概率不是项目代码的问题,而是浏览器扩展的问题。曾经出现的异常就是因为我浏览器中安装的Tampermonkey扩展,把该扩展禁用了就可以了,就不会再报这个异常了。文章来源地址https://www.toymoban.com/news/detail-400938.html

到了这里,关于WebSocket is already in CLOSING or CLOSED state解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker: Error response from daemon: Conflict. The container name is already in use by container You

    docker: Error response from daemon: Conflict. The container name is already in use by container You have to remove (or rename) that container to be able to reuse that name. 在此之前已经启动了相同名字的docker容器,The container name is already in use by container You have to remove (or rename) that container to be able to reuse that name 想要

    2024年02月10日
    浏览(63)
  • docker报错之:docker: Error response from daemon: Conflict. The container name “xxx“ is already in use b

            最近再使用docker搭建靶场环境的时候,遇到了docker容器报错。 这是docker守护进程冲突引起的响应错误。猜测可能是之前启动容器未正确的退出导致的。需要将以前启动过的容器删掉。 1、docker ps -a 查看所有的容器状态,包括正在运行和已经停止的。 2、docker rm i

    2024年02月03日
    浏览(54)
  • 【报错】IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid

    数据同步失败:这是一般最普遍的情况,可以对业务报错处加锁,确保数据传输的同步。 连接超时:网络连接不稳定或网络延迟导致连接超时。 报错前: 更改为: ---------------------------------------------------------------------- 本文参考:The remote endpoint was…

    2024年01月18日
    浏览(44)
  • 猫头虎分享已解决Bug || Docker: Error response from daemon: Conflict. The name is already in use by another

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年03月14日
    浏览(62)
  • Cargo, the Rust package manager, is not installed or is not on PATH. 解决方案

    今天在配置一个关键时需要执行pip install logru,在执行过程中出现了以下错误:   error: subprocess-exited-with-error   × Preparing metadata (pyproject.toml) did not run successfully.   │ exit code: 1   ╰─ [6 lines of output]       Cargo, the Rust package manager, is not installed or is not on PATH.       This packag

    2024年02月09日
    浏览(50)
  • python中,Microsoft Visual C++ 14.0 or greater is required问题解决方案

    今天在写一个小程序,安装依赖的时候发现这个问题,平时都是直接安装Visual Studio解决,但是这个安装太大了,所以解决看看怎么安装是最方便的,最容易解决的。 下面这个就是出现的问题: 为了解决这个问题,首先开始百度,发现主要有两种办法。 一、whl文件安装 直接下

    2024年02月11日
    浏览(44)
  • hnswlib microsoft visual c++ 14.0 or greater is required离线解决方案

    在win10离线电脑pip安装chromadb时,安装到依赖包hnswlib 0.7.0时,提示microsoft visual c++ 14.0 or greater is required 安装Visual Studio 2015 未解决,提示需要MSVC 2017以上 解决方案: 在有网的电脑访问Microsoft C++ 生成工具 - Visual Studio下载生成工具vs_BuildTools.exe,这个工具只是一个下载器,直接

    2024年01月23日
    浏览(54)
  • python报错:tesseract is not installed or it‘s not in your PATH.

    问题 :pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it’s not in your PATH. 1 电脑安装tesseract tesseract下载地址 一路默认安装,最后安装地址选择了D盘 配置path环境变量 cmd中 输入tesseract,安装成功 2 python 依赖包 还是报错 File “D:anacondaLibsite-packagespytesseractpytesse

    2024年02月03日
    浏览(44)
  • At least one <template> or <script> is required in a single file component.

    新建了一个vue3项目引入路由的时候报这个语法错误,检查版本什么都没问题写法也对,看字面意思是解析不了template 没细想就下了一个template解释器 npm i vue-template-compiler 然而无事发生 纠结了一下想起来我引入的一个路由的文件(vue文件)因为新建还没有写html部分也就是个

    2024年02月11日
    浏览(48)
  • tesseract使用时遇到的问题:tesseract is not installed or it‘s not in your PATH

    使用 pytesseract库安装完成后,它并不能识别出图片内容,会报错pytesseract.pytesseract.TesseractNotFoundError 增加了环境变量,依旧识别失败,以下是异常代码 tesseract_cmd = ‘tesseract’ pytesseract中的tesseract_cmd引用错误,修改这个就好 tesseract_cmd = r’E:codepythonheSuanTesseracttesseract.exe’

    2024年02月06日
    浏览(102)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包