Flask socketio FlaskSocketIO检索所有已连接客户端的列表

Flask socketio FlaskSocketIO检索所有已连接客户端的列表,flask-socketio,Flask Socketio,我才刚开始学英语。 基本要求是收集连接到服务器的所有客户端(以及信息)。下面的代码就是为此编写的。 点击按钮即可收集用户名 #main.py from flask import Flask, render_template, request, session, jsonify from flask_socketio import SocketIO, emit, send app = Flask(__name__) socketio = SocketIO(app, manage_session=

我才刚开始学英语。 基本要求是收集连接到服务器的所有客户端(以及信息)。下面的代码就是为此编写的。 点击按钮即可收集用户名

#main.py
from flask import Flask, render_template, request, session, jsonify
from flask_socketio import SocketIO, emit, send

app = Flask(__name__)
socketio = SocketIO(app, manage_session=False)
clients = []

@socketio.on('client_connected', namespace='/connect')
def handle_client_connected_event(username, methods=['GET', 'POST']):
    clients.append(
        {
            'client_session': request.sid,
            'client_username': username,
            'client_ip': request.access_route
        }
    )
    print(clients)

@app.route('/')
def index(methods=['GET', 'POST']):
    return render_template('index.html')

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

和客户端代码:

//JS
var socket = io.connect('http://' + document.domain + ':' + location.port);

var socket_messages = io.connect('http://' + document.domain + ':' + location.port+'/connect');

$('#send_username').on('click', function(){
    socket_messages.emit('client_connected', $('#username').val());
});

最后是HTML

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.min.js"></script>
    <script type="text/javascript" src="{{ url_for('static', filename='app.js') }}"></script>
    <title>Document</title>
</head>
<body>
    <input type="text", id="username">
    <button id="send_username">Submit Username</button><br>
    <!-- Connected User:  -->
</body>
</html>

文件
提交用户名
我无法使用此代码获取客户信息。关于我可能出了什么问题,有什么见解吗?
感谢您的帮助

methods=['GET','POST']参数适用于Flask路由,它不在Flask SocketIO事件处理程序中使用。可能不会引起你的问题,但你还是应该消除它,因为它毫无用处。@Miguel。这是我也无法理解的。如何从连接管理器中找出某个特定客户端当前是否连接到我的服务器?@RohitashwaNigam我不知道“连接管理器”是什么。当建立连接时,客户端接收到
connect
事件,因此服务器。这就是你知道连接是如何建立的。