gpt4 book ai didi

python-2.7 - 为什么 Flask + SocketIO + Gevent 给我 SSL EOF 错误?

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:04 31 4
gpt4 key购买 nike

这是一个简单的代码片段,不断重复我遇到的问题。我使用的是 Python 2.7.12、Flask 0.11、Flask-SocketIO 2.7.1 和 gevent 1.1.2。我知道这可能是一个更好地提交给负责包的邮件列表的问题,但我无法弄清楚是哪一个负责。但是,我很确定这是 gevent 的问题,因为这是引发异常的原因。

from flask import Flask
from flask_socketio import SocketIO

from gevent import monkey
monkey.patch_all()

import ssl

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'

socketio = SocketIO(app, async_mode='gevent')

@app.route('/')
def index():
return "Hello World!"

@socketio.on('connect')
def handle_connect_event():
print('Client connected')

if __name__ == '__main__':
socketio.run(app, host='127.0.0.1', port=8443,
certfile='ssl/server/server.cer', keyfile='ssl/server/server.key',
ca_certs='ssl/server/ca.cer', cert_reqs=ssl.CERT_REQUIRED,
ssl_version=ssl.PROTOCOL_TLSv1_2)

这是客户端连接时出现的错误:

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 534, in
result = self._run(*self.args, **self.kwargs)
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 25, in
return handle(*args_tuple)
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 126, in wr
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args)
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 691, i
ciphers=ciphers)
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 271, i
raise x

SSLEOFError: EOF occurred in violation of protocol (_ssl.c:590)
<Greenlet at 0x7fdd593c94b0: _handle_and_close_when_done(<bound method WSGInd method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fdd590f4410 SSLEOFError

如果有帮助,我的系统也有 OpenSSL 版本 1.0.2.j。任何想法将不胜感激!

最佳答案

在代码之上使用 patch_all。甚至在 flask 和 socketio 导入之前。

from gevent import monkey
monkey.patch_all()

from flask import Flask
from flask_socketio import SocketIO

import ssl

关于python-2.7 - 为什么 Flask + SocketIO + Gevent 给我 SSL EOF 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969688/

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