flask_socketio不适用于'https'协议

问题描述 投票:0回答:1

当我使用'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进行隧道传输。

sockets flask flask-socketio
1个回答
0
投票

尝试使用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的帮助我。

© www.soinside.com 2019 - 2024. All rights reserved.