socket.io客户端数据源';t从flask socketio服务器捕获事件

socket.io客户端数据源';t从flask socketio服务器捕获事件,flask,socket.io,flask-socketio,Flask,Socket.io,Flask Socketio,我有一个非常基本的设置 flask socketio应用程序 from flask import Flask, render_template, request from flask_socketio import SocketIO logger = logging.getLogger('mainLogger') level = logging.DEBUG logger.setLevel(level) app = Flask(__name__) socketio = SocketIO(app

我有一个非常基本的设置 flask socketio应用程序

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

logger = logging.getLogger('mainLogger')
level = logging.DEBUG
logger.setLevel(level)

app = Flask(__name__)
socketio = SocketIO(app, manage_session=True, cors_allowed_origins="*")


@app.route('/')
def homepage():
    return render_template(
        "test.html"
    )

# Tfrom flask import Flask, render_template, request
from flask_socketio import SocketIO


app = Flask(__name__)
socketio = SocketIO(app, manage_session=True, cors_allowed_origins="*")


@app.route('/')
def homepage():
    return render_template(
        "test.html"
    )

@app.route('/testMessages', methods=['GET'])
def testMessages():
    _session = request.args.get('session')
    print(_session)
    socketio.emit('message', {'session': _session})
    return "OK"est function to validate multiple concurrent calls
@app.route('/testMessages', methods=['GET'])
def testMessages():
    _session = request.args.get('session')
    print(_session)
    socketio.emit('message', {'session': _session})
    return "OK"
if __name__ == '__main__':
    socketio.run(app)
以及使用socket.io客户端测试html

<button id="testMessage" class="float-right btn btn-wok my-2 my-sm-0 btn-sm ml-1 mt-2" type="submit" >Run Test</button>

<footer>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.js"></script>
</footer>

<script>
    var url=document.URL, shortUrl=url.substring(0,url.lastIndexOf("/"));

    var sessionId = "1234567890";

    function testMessages(){
        console.log('TESTMESSAGES')
        $.getJSON(
            shortUrl + '/testMessages?session=' + sessionId, {}, function(data) {
                console.log('WOW')
                console.log(data)
            }
            );
        return false;
    }

    $(function() {
        $('#testMessage').on('click', function() {
            testMessages();
        });
    });
    $(document).ready(function(){
        console.log('DOCUMENT READY')
        const socket = io("http://localhost:5000/socket.io");
        socket.on("connect", () => {
            console.log(socket.disconnected); // false
            });
        socket.on("disconnect", (reason) => {console.log(`disconnect ${reason}`)})
        socket.on('message', function(message) {
            console.log("Received message: " + message);
            });
        console.log(socket);
        });
</script>
浏览器控制台中的客户端日志

(index):35 DOCUMENT READY
(index):44 Socket {ids: 0, acks: {…}, receiveBuffer: Array(0), sendBuffer: Array(0), flags: {…}, …}
(index):19 TESTMESSAGES

查看Flask SocketIO文档的疑难解答部分,了解如何启用日志。然后将显示此问题的日志附加到您的问题中。@Miguel更新了代码,但没有提供任何清晰性。请参阅上面的代码更新尝试从连接URL中删除
/socket.io
(index):35 DOCUMENT READY
(index):44 Socket {ids: 0, acks: {…}, receiveBuffer: Array(0), sendBuffer: Array(0), flags: {…}, …}
(index):19 TESTMESSAGES