Uncaught ReferenceError: io не определено в flask - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь создать приложение чата с flask и socketio, но я получаю Uncaught ReferenceError: io не определена ошибка в моем инспекторе веб-браузеров. Погуглив эту ошибку, я ничего не дал.

Вот мой python код:

import requests

from flask import Flask, jsonify, render_template, request
from flask_socketio import SocketIO, emit

# Configure Flask-socketio
app = Flask(__name__)

app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)


@socketio.on('message')
def handleMessage(message):
    print('Message: ' + message)
    send(message, broadcast=True;)

if __name__ == '__main__':
    socketio.run(app)

А вот мой html код:

<html>
    <head>
        <title>Test flask-socketio</title>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>    
    </head>
    <body>
        <script type="text/javascript">
            document.addEventListener('DOMContentLoaded', () => {
                var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);

                //When connected, configure submit button to emit message event
                socket.on('connect', () => {
                    socket.send('User has connected!');
                });
            });
        </script>
        <ul id="messages"></ul>
        <input type="test" id="myMessage">
        <button id="sendbutton">Send</button>
    </body>
</html>

Кто-нибудь знает, почему я получаю эту ошибку?

1 Ответ

0 голосов
/ 03 мая 2020

Проблема в том, что вы не получаете socket.io здесь. Ниже правильно HTML Код файла для вас

<html>
    <head>
        <title>Test flask-socketio</title>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>  
    </head>
    <body>
        <script type="text/javascript">
            document.addEventListener('DOMContentLoaded', () => {
                var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);

                //When connected, configure submit button to emit message event
                socket.on('connect', () => {
                    socket.send('User has connected!');
                });
            });
        </script>
        <ul id="messages"></ul>
        <input type="test" id="myMessage">
        <button id="sendbutton">Send</button>
    </body>
</html>

Я обновил здесь адрес сценариев.

Далее вы получите ошибку cors, Гудлак.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...