找不到socket.io.min.js(失败)文件

时间:2016-11-08 04:02:35

标签: python sockets flask socket.io

我遇到了flask-socketIO的错误。我正在尝试建立一个聊天网站。 socket.io.min.js失败。

以下是我要采取的步骤。

  1. python main.py(加载服务器)

  2. 刷新我的index.html in chrome

  3. 打开开发人员工具,发现socket.io.min.js失败

  4. 我的main.py看起来像

    from flask import Flask, render_template
    from flask_socketio import SocketIO
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'mysecret'
    
    socketio = SocketIO(app)
    
    @socketio.on('message')
    def handleMessage(msg):
    print('Message: ' + msg)
    send(msg, broadcast=True)
    
    if __name__ == '__main__':
        socketio.run(app)
    

    我的index.html包含以下内容

    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.5.1/socket.io.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js" integrity="sha384-XTs3FgkjiBgo8qjEjBk0tGmf3wPrWtA6coPfQDfFEY8AnYJwjalXCiosYRBIBZX8" crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js" integrity="sha384-BLiI7JTZm+JWlgKa0M0kGRpJbF2J8q+qreVrKBC47e3K6BW78kGLrCkeRX6I9RoK" crossorigin="anonymous"></script>
    
        <script type="text/javascript" charset="utf-8">
            var socket = io.connect();
            socket.on('connect', function() {
                socket.send('user connected!');
            });
        </script>
    

    我尝试了很多不同的cdns,但没有任何帮助。我还是得到的 enter image description here

1 个答案:

答案 0 :(得分:0)

您需要为io.connect函数提供域和端口,如Flask-SocketIO

文档中所述。
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script type="text/javascript" charset="utf-8">
    var socket = io.connect('http://' + document.domain + ':' + location.port);
    socket.on('connect', function() {
        socket.emit('my event', {data: 'I\'m connected!'});
    });
</script>