Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Flask SocketIo应用程序在Heroku上部署时不工作_Javascript_Flask_Heroku_Socket.io_Flask Socketio - Fatal编程技术网

Javascript Flask SocketIo应用程序在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

我很难在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

<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。