草庐IT

gevent-socketio

全部标签

javascript - Dart Nodejs 和 Socketio

将socketionodejs应用程序转换为dart有哪些选择?是否以某种方式支持使用dart的nodejs服务器(理想情况下具有dart编辑器的所有花哨的调试功能)?socketio有基于dart的库吗? 最佳答案 Dart有一个服务器端VM,就像V8有一个node.js形式的服务器端VM。看看亚当斯密的webserverchatsample,它使用服务器端的websockets与客户端的websockets通信,这两个部分都是用Dart编写的。服务器端的关键部分如下所示:import"dart:io";main(){HttpSe

node.js - 使用 socketio 心跳的优点/缺点

Socket.io允许您使用心跳来“检查Socket.IO连接的健康状况”。心跳到底是什么?为什么应该或不应该使用它们? 最佳答案 心跳是从客户端定期发送到服务器(或从服务器到客户端并返回到服务器)的小消息,以确认客户端仍然存在并且处于事件状态。例如,如果您有一个Node.js应用程序为聊天室服务,而用户在几分钟内没有说任何话,则无法判断他们是否真的仍然处于连接状态。通过以预定的时间间隔(例如,每15秒)发送一次心跳,客户端通知服务器它仍然存在。如果是例如自从服务器收到来自客户端的心跳20秒后,它可能已断开连接。这是必要的,因为您c

python - gevent:产生大量greenlets的缺点?

从我在评论中的问题到thisanswer问题"Geventpoolwithnestedwebrequests":假设一个有大量任务,使用gevent.spawn(...)来同时生成所有任务而不是使用gevent池和pool.spawn(...)来限制并发greenlets的数量?表述不同:使用gevent.Pool“限制并发”是否有任何优势,即使要解决的问题不需要?知道什么会构成这个问题的“大量”吗? 最佳答案 在处理很多事情时,它更简洁,也是一种很好的做法。几周前我遇到了这个问题,我正在使用geventspawn来验证一堆针对DN

python - 在线程中使用 Popen 会阻塞每个传入的 Flask-SocketIO 请求

我有以下情况:我在socketio服务器上收到一个请求。我回答它(socket.emit(..)),然后然后在另一个线程中开始计算负载繁重的东西。如果繁重的计算是由subprocess.Popen(使用subprocess.PIPE)引起的,只要它正在执行,它就会完全阻止每个传入的请求,尽管它发生在一个单独的线程。没问题-在thisthread建议异步读取缓冲区大小为1的子进程的结果,以便在这些读取之间其他线程有机会做某事。不幸的是,这对我没有帮助。我也已经monkeypatchedeventlet并且工作正常-只要我不在线程中使用subprocess.Popen和subprocess

python - 如何结合 django 和 gevent 的基础知识?

经过大量搜索和谷歌搜索,我要回到井边。我有Django1.4并且正在寻找一个体面的working示例来弄清楚让Django与gevent一起工作。我喜欢Django框架,但我需要它来处理长轮询。我已经有一个使用gevent的工作服务器,它可以处理长轮询请求以及通过http以大约10帧/秒的速度流式传输图像。我想使用Django中的所有好东西来为这部分提供一个框架。那里有很多示例,但不幸的是,这些示例似乎都不是开箱即用的!有一个可行的例子来理解这两个东西是如何协同工作的,真的很有帮助。这是我目前发现的问题和问题:http://codysoyland.com/2011/feb/6/even

Python - Flask-SocketIO 从线程 : not always working 发送消息

我处于收到来自客户的消息的情况。在处理该请求的函数(@socketio.on)中,我想调用一个完成一些繁重工作的函数。这不应导致阻塞主线程,并且认为一旦工作完成就会通知客户端。因此我开始了一个新线程。现在我遇到了一个非常奇怪的行为:消息永远不会到达客户端。但是,代码会到达发送消息的特定位置。更令人惊讶的是,如果线程中除了发送给客户端的消息之外没有发生任何事情,那么答案实际上会找到客户端的方式。总结一下:如果在发送消息之前发生了计算密集型的事情,那么它就不会被传递,否则就是。就像人们所说的here和here,从线程向客户端发送消息根本不是问题:Inalltheexamplesshownu

利用flask-socketio实现前后端实时通信的功能

文章目录一、需求二、解决方法三、具体实现步骤一:安装步骤二:服务器代码步骤三:前端代码结果展示四、注意事项一、需求准备实现一个前后端实时发送消息的功能,即后端发送一条消息,前端就可以接收到该消息并显示在页面上。二、解决方法利用Flask-SocketIO实现,Flask-SocketIO使Flask应用程序能够访问客户端和服务器之间的低延迟双向通信。能够很好的解决我们的问题三、具体实现步骤一:安装pipinstalleventletpipinstallflask-socketio注意:flask-socketio对版本要求比较严格,如果报错,请更换如下包的版本:Flask1.1.4Flask-

python - 带 gevent 的 redis-py

redis-py库可以和gevent一起使用吗?有人有使用gevent运行redis-py库的经验吗?有工作示例吗?他们在一起玩得好吗?是否有任何预防措施或技巧可以让它们大规模工作?换个说法:要使用geventgreenlets进行redis-py连接,除了monkeypatch套接字之外,我还需要做一些特别的事情吗?fromgeventimportmonkeymonkey.patch_all()然后像往常一样使用redis-py? 最佳答案 是的,redis-py与gevent配合得很好。您可以查看我对以下问题的回答:您会找到一个

python - 同时在进程中使用 Celery 并在任务中使用 gevent

我想将Celery用作我的任务队列,这样我的网络应用程序就可以将任务排入队列,返回响应,并且该任务将同时处理/某天/...我构建了一种API,所以我不知道会提前有什么样的任务——future可能会有处理HTTP请求的任务,另一个IO,还有CPU消耗的任务。在这方面,我想在进程上运行Celery的工作人员,因为这些是Python中通用的并行性。但是,我也想在我的任务中使用gevent,所以我可以让一个任务产生许多HTTP请求等。问题是,当我这样做时:fromgeventimportmonkeymonkey.patch_all()celery停止工作。它开始了,但没有任务可以有效地排队——

python - gevent 无法在 Ubuntu 上正确安装

我想尝试gevent,但安装后我无法加载任何gevent模块。安装步骤为:sudoapt-getinstalllibevent-devsudopipinstallgreenletsudopipinstallgevent环境设置为Ubuntu10.10x86_64GNU/Linux。当我尝试做一个简单的测试时,我得到:>>>importgevent>>>fromgeventimportsocketTraceback(mostrecentcalllast):File"",line1,inImportError:cannotimportnamesocket我怀疑安装没有按照应有的方式进行,但