我有一个简单的websocket应用程序,例如main.py
当我尝试使用一名工作人员启动它时,
gunicorn -w 1 -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" main:EchoApplication
没问题。
如果我将w
参数增加到1以上,例如-w 20
,则孩子会开始崩溃,
error: [Errno 48] Address already in use: ('127.0.0.1', 8100)
有什么想法吗?附加源代码
from geventwebsocket import WebSocketServer, WebSocketApplication, Resource
import time
class EchoApplication(WebSocketApplication):
def on_open(self):
print "Connection opened"
def on_message(self, message):
self.ws.send('Let me take a sleep')
time.sleep(10)
self.ws.send(message)
def on_close(self, reason):
print reason
WebSocketServer(
('127.0.0.1', 8100),
Resource({'/': EchoApplication})
).serve_forever()
答案 0 :(得分:1)
您不能使用相同的端口。我们遇到了这个问题,花了一些时间才弄明白。
WebSocket 绑定到一个端口,每个 gunicorn 都会尝试在同一个端口中创建 WS。