我从SO中找到了这个0依赖python websocket服务器:
https://gist.github.com/jkp/3136208
我正在为我的flask
应用程序使用gunicorn,我也希望使用gunicorn
来运行这个websocket服务器。在代码的最后几行中,它运行服务器:
if __name__ == "__main__":
server = SocketServer.TCPServer(
("localhost", 9999), WebSocketsHandler)
server.serve_forever()
我无法弄清楚如何在websocketserver.py
中运行此gunicorn
。这是因为人们会认为您希望gunicorn
运行server_forever()
以及SocketServer.TCPServer(...
。
这可能吗?
答案 0 :(得分:3)
GUnicorn希望WSGI应用程序(PEP 333)不仅仅是一个函数。您的应用必须接受environ
变量和start_response
回调并返回数据迭代器(粗略地说)。由SocketServer.StreamRequestHandler封装的所有机器都在枪支方面。我想这是修改这个要点以成为WSGI应用程序的很多工作(但这很有趣!)。
或者,也许这个图书馆将为您完成工作:https://github.com/CMGS/gunicorn-websocket
答案 1 :(得分:3)
如果您使用Flask-Sockets扩展,您可以直接在扩展中使用gunicorn的websocket实现,从而可以从以下命令行开始:
gunicorn -k flask_sockets.worker app:app
虽然我不知道你是不是想做什么。