gpt4 book ai didi

python - cherrypy 作为 gevent-socketio 服务器

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:37 24 4
gpt4 key购买 nike

我刚刚开始使用 gevent-socketio,它很棒!

但我一直在使用聊天教程中的默认 socketioserversocketio_manage 并且想知道如何将 socketiocherrypy 集成

本质上,我该如何改变它:

class MyNamespace(BaseNamespace):...

def application(environ, start_response):
if environ['PATH_INFO'].startswith('/socket.io'):
return socketio_manage(environ, { '/app': MyNamespace})
else:
return serve_file(environ, start_response)

def serve_file(...):...

sio_server = SocketIOServer(
('', 8080), application,
policy_server=False) sio_server.serve_forever()

进入普通的 cherrypy 服务器

最佳答案

Gevent-socketio 基于 Gevent,以及 Gevent 的网络服务器。有两种实现:pywsgi,它是纯 python 和 wsgi,它使用 libevent 的 http 实现。

请参阅此处以“pywsgi.WSGIServer 和 wsgi.WSGIServer 之间的区别”开头的段落:

http://www.gevent.org/servers.html

只有那些服务器是“绿色”的,因为它们将控制权交给了 Gevent 循环……所以你只能使用这些服务器 afaik。这样做的原因是服务器在请求的最开始就存在,并且知道如何处理“升级”和 websockets 协议(protocol)协商,并且它将在下一层(SocketIO)的“环境”中传递值会期待并知道如何处理。

你还需要使用 gevent-websocket 包.. 因为它是绿色的(gevent-socketio 是基于那个包的)。您不能只交换 websocket 堆栈。

希望这对您有所帮助。

关于python - cherrypy 作为 gevent-socketio 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com