如何使用Flask SocketIO制作多个事件?

如何使用Flask SocketIO制作多个事件?,flask,flask-socketio,Flask,Flask Socketio,我有一个socetio连接,可在点击按钮时进行搜索: $(document).ready(function () { var socket = io.connect('http://' + document.domain + ':' + location.port); socket.on('connect', function () { socket.emit('seatch event', { data: 'App Sta

我有一个socetio连接,可在点击按钮时进行搜索:

$(document).ready(function () {
        var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function () {
            socket.emit('seatch event', {
                data: 'App Started'
            })
            var form = $('form').on('submit', function (e) {
                let search_query = $('#search_text').val()
                socket.emit('search event', {
                    search_query: encodeURIComponent(search_query)
                })
            })
        });

socket.on('search_results_event', function (msg) {
    //do someting
});
现在我想添加另一个事件,在我的例子中,我想向服务器发送数据,并在列表中的
  • 元素变为
    激活时接收应答
    如何添加此事件?我必须添加另一个
    连接


    有什么建议吗?

    您不需要另一个连接。一旦连接了套接字,您就可以使用
    socket.on
    ,因为您已经必须捕获从服务器发出的事件,例如
    socket.emit('[event\u name],[data\u object])
    将数据发送到服务器

    在Javascript端,您可以这样发出

    socket.emit('my_event', {'message': 'hello world'})
    
    您可以在
    烧瓶上并排处理此问题

    @socketio.on('my_event')
    def handle_my_event(data):
    
        print('Received an instance of my_event')
    
        #  will print {'message': 'hello world'}
        print(data) 
    
    类似地,您可以从
    flask
    服务器发出事件,例如通过

    from flask_socketio import emit
    
    emit('search_results_event', {'key': 'value'})
    
    这将由问题中的
    上现有的
    套接字处理。
    emit
    的第二个参数是要发送的数据-通常是json

    有关更多信息,请参阅