flask_socketio 无法使用 'https' 协议

flask_socketio not working with 'https' protocol

当我使用 'https' 协议运行 代码

时,我遇到错误 BAD REQUEST(在控制台中)

服务器端:

from flask import Flask, render_template, request, redirect, url_for,
con = Flask(__name__) 
con.debug = True 
con.secretKey ='HelloWorld-ByeWorld' 
socket = SocketIO(con)
# MY code 
if __name__ == "__main__":
    socket.run(con)

客户端:

socket=io.connect({secure:true});//default domain
privatedomain = location.protocol+'//'+document.domain+'/private';
videodomain = loaction.protocol+'//'+document.domain+'/video';
socket_private = io(privatedomain, {secure:true});
socket_video = io(videodomain, {secure:true});
getConnectedDevices('videoinput', cameras => console.log('Cameras found', cameras));
webcam();

但它在 'http' 协议下运行良好。 我需要 'https' 才能使用媒体设备。

我正在使用 ngrok 进行隧道传输。

尝试不同版本的flask, flask-socketio,我得出的结论是问题出在python-engineio版本上。超过 python-engineio==3.8.2.post1,'https' 无法连接。 所以对我来说,最好的工作包版本是-

Flask==1.1.2
Flask-SocketIO==4.3.0
gevent==1.4.0
python-engineio==3.8.2.post1
python-socketio==4.5.1

谢谢 Miguelgrinberg,Yazaar 帮助我。