当我使用'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的帮助我。