每次客户端连接到服务器时,我都会收到输入 PEM 密码短语的提示。我只想在服务器启动时输入它,而不必再次输入它。Twisted Matrix 框架只需要启动时的密码,为什么不用 gevent?还是我使用 gevent 错误?如果我使用不需要 PEM 密码短语的证书,下面的代码可以正常工作,但我想使用带有密码短语的证书。
from gevent.server import StreamServer
from gevent.pool import Pool
from gevent import monkey
class SocketPool(object):
def __init__(self): self.pool = Pool(1000)
def listen(self, socket):
while True:
line = socket.recv(1024)
if not line: break
print line
socket.close()
break
def add_handler(self, socket, address):
print "connection made:", address
if self.pool.full(): raise Exception("At maximum pool size")
else: self.pool.spawn(self.listen, socket)
def shutdown(self): self.pool.kill()
monkey.patch_all()
sockPool = SocketPool()
server = StreamServer(('', 5000), sockPool.add_handler, keyfile='key.pem', certfile='cert.pem')
server.serve_forever()