Javascript Flask SocketIo应用程序在Heroku上部署时不工作
我很难在Heroku上部署实时聊天应用程序。应用程序在本地计算机上运行平稳 然而,在Heroku上,我不断遇到以下错误:Javascript Flask SocketIo应用程序在Heroku上部署时不工作,javascript,flask,heroku,socket.io,flask-socketio,Javascript,Flask,Heroku,Socket.io,Flask Socketio,我很难在Heroku上部署实时聊天应用程序。应用程序在本地计算机上运行平稳 然而,在Heroku上,我不断遇到以下错误: Blocked loading mixed active content “http://my-app.herokuapp.com/socket.io/?EIO=3&transport=polling&t=1594923543323-0” socket.io.min.js:1:30684 我包括本准则的相关部分: index.html <scrip
Blocked loading mixed active content “http://my-app.herokuapp.com/socket.io/?EIO=3&transport=polling&t=1594923543323-0”
socket.io.min.js:1:30684
我包括本准则的相关部分:
index.html
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script type="text/javascript" src="{{url_for('static', filename= 'scripts/index.js')}}"></script>
初始化.py:
document.addEventListener('DOMContentLoaded', function(){
var protocol = window.location.protocol;
socket= io.connect(protocol + document.domain + ':' + location.port);
socket.on('connect', function(){
socket.send("Am I connected to you server?");
socket.emit('join', {'name' : username});
})}
from flask_socketio import SocketIO
socketio= SocketIO()
def create_app(config_class= Config):
app= Flask(__name__, instance_relative_config= True)
socketio.init_app(app)
@socketio.on('join')
def handle_join(data):
current_user= User.query.filter_by(username = data['name']).first()
room= current_user.id
join_room(room)
send('you are now joined, ' + current_user.username, room= room)
web: gunicorn chatbox:app
路由.py:
document.addEventListener('DOMContentLoaded', function(){
var protocol = window.location.protocol;
socket= io.connect(protocol + document.domain + ':' + location.port);
socket.on('connect', function(){
socket.send("Am I connected to you server?");
socket.emit('join', {'name' : username});
})}
from flask_socketio import SocketIO
socketio= SocketIO()
def create_app(config_class= Config):
app= Flask(__name__, instance_relative_config= True)
socketio.init_app(app)
@socketio.on('join')
def handle_join(data):
current_user= User.query.filter_by(username = data['name']).first()
room= current_user.id
join_room(room)
send('you are now joined, ' + current_user.username, room= room)
web: gunicorn chatbox:app
Procfile:
document.addEventListener('DOMContentLoaded', function(){
var protocol = window.location.protocol;
socket= io.connect(protocol + document.domain + ':' + location.port);
socket.on('connect', function(){
socket.send("Am I connected to you server?");
socket.emit('join', {'name' : username});
})}
from flask_socketio import SocketIO
socketio= SocketIO()
def create_app(config_class= Config):
app= Flask(__name__, instance_relative_config= True)
socketio.init_app(app)
@socketio.on('join')
def handle_join(data):
current_user= User.query.filter_by(username = data['name']).first()
room= current_user.id
join_room(room)
send('you are now joined, ' + current_user.username, room= room)
web: gunicorn chatbox:app
我将eventlet用于异步服务。
我对web开发非常陌生,我将非常感谢您的帮助。您是否在Heroku上使用http或https URL?您的HTML页面中似乎混合了安全和非安全请求,这基本上就是问题所在。@Miguel https url。此外,有时保留事件“connect”、“message”可以正常工作,但自定义socketio事件却无法正常工作。您显示的错误日志表明套接字连接将转到http://URL。您是否在Heroku上使用http或https URL?您的HTML页面中似乎混合了安全和非安全请求,这基本上就是问题所在。@Miguel https url。此外,有时保留事件“connect”、“message”可以正常工作,但自定义socketio事件却无法正常工作。不过,显示的错误日志表明套接字连接将转到http://URL。