当前位置: 首页 > 知识库问答 >
问题:

带有Python的Websockets-各种选项

商宝
2023-03-14
var ws = new WebSocket("ws://127.0.0.1:5678/")
ws.onmessage = function (event) ...
  1. 在客户端,我被迫使用socketio,因为浏览器支持的WebSocket不能与flask-socketio一起工作。总是这样,还是我做错了什么(这与问题2有关)。
  2. 到目前为止,我成功地在Flask调试模式下运行了Flask-socketio(python my_flask_source.py)。我阅读了Flask-socketio文档,了解到此模式不支持Websockets,只支持长轮询。事实上,我看到每隔几秒钟就有许多get/post请求由flask提供服务。客户正在使用uWSGI进行生产,但我不太清楚从哪里开始在开发中复制他们的配置。我对Python相当陌生,但是通过阅读尽可能多的相关资料,我了解到Flask development server是多线程的,这意味着它可以在单个进程中服务许多并行请求。但是看起来uWSGI是单线程的,为了获得高吞吐量,必须产生许多进程。此外,还有一些gevent模块:

UWSGI--HTTP:5000--Gevent1000--HTTP-WebSockets--master--WSGI-File app.py--可调用的应用程序

在uWSGI下部署Flask-socketio服务器进行生产,是否有编写良好的分步说明?nginx进场吗?我将能够在浏览器中使用Websockets,还是Socketio?

共有1个答案

诸葛利
2023-03-14

让我试着澄清:

>

  • 如果使用socket.io服务器,则必须使用socket.io客户端。io与WebSocket不同。

    您正在运行带有gevent的uWSGI,因此并发是通过greenlets处理的。--gevent1000参数配置1000个并发任务。您不需要生成多个uWSGI进程,除非您用完了这1000个进程

    在uWSGI下部署Flask-socketio服务器进行生产,是否有编写良好的分步说明?

    我所能提供的只有Flask-SocketIO和python-socketio文档。

    nginx进场吗?

    取决于你,真的。uWSGI服务器是可生产的,但通常将它放在nginx后面,并让nginx终止TLS,服务静态内容等。

  •  类似资料:
    • 问题内容: websockets有趣的部分是从服务器向浏览器发送本质上未经请求的内容,对吗? 好吧,我正在使用GregorMüllegger的django-websocket。使Websockets在Django中工作确实是一个很棒的早期尝试。 我完成了“ helloworld”。它的工作方式是:当请求是websocket时,会将对象websocket附加到请求对象。因此,在解释websocket

    • 问题内容: 我正在研究有关Java 6 18 VM上垃圾回收的各种选项,并希望有一些指导。 我们在JBoss上运行我们的应用程序,并且在重新部署期间偶尔会出现臭名昭著的PermGen错误。关于解决或缓解此问题的最佳方法,Internet上存在许多相互矛盾且过时的信息。 从我所看到的,以下是正确的: VM选项本身 无法解决此问题 ,只能将其推迟。 解决此问题的唯一可靠方法是修复Application

    • 我正在一个项目,有纯PHP作为后端和MySQL作为数据库。目前,我正在使用ajax来发布和接收来自数据库的数据。但我想使用Websockets的接收部分,使其实时。根据我的搜索和发现,人们引用Node.js、Redis PubSub等来实现它。然而,我没有找到一个关于这个主题的好教程。另外,据我所知,当我在后面运行复杂的PHP算法和MySQL查询时,Nods.js和PHP并不能很好地结合在一起。所

    • 问题内容: 您如何用自己喜欢的语言模拟Python样式生成器?我在Scheme中找到了这个。看到其他实现特别有趣,尤其是在那些没有一流延续性的语言中。 问题答案: 这是C ++中使用纤维模拟生成器的示例: 使用光纤的本机C ++的收益率返回迭代器 “收益回报”迭代器是一种出于以下原因而创建的语言功能:简单性。通常,遍历整个collectionl更加容易,将所有所需的上下文存储在局部变量中,而不是设

    • 我不确定这是否可以实现。我正在使用以下版本以群集模式运行docker: 客户端:版本:17.03.0-CE API版本:1.26Go版本:GO1.7.5 Git提交:3A232C8构建:周二2月28日08:10:07 2017 OS/arch:linux/amd64 显然,客户端套接字连接无法解析到群集中托管的服务集群。docker swarm是否有一个变通配置,或者它只是不可能?我没有太多的运气

    • 问题内容: 我正在为学校项目这样做(因此我不能使用任何高级功能),并且我正在使用Python 2.6.6。 我有一个从1到1000的数字列表,我的种子将是448。 如何使用该种子生成随机序列,以便列表中的数字位于不同的索引中? 知道种子后,是否有可能将列表中的元素返回到初始位置? 抱歉,如果我的问题令人困惑,但是英语不是我的母语。 谢谢。 问题答案: 结果是 您的列表现已伪随机化。 “伪”很重要,