服务器命令提示符中的Flask Socket IO回调信息

问题描述 投票:0回答:1

我到处都找过了,但很难找到解释,我不知道是我忽略了什么,还是它的功能不符合我的期望。

从客户端接收到 "my event "后,有一个 "messageReceived "回调与响应一起传递。

def messageReceived(methods=['GET', 'POST']):
    print('message was received!!!')

@socketio.on('my event')
def handle_my_custom_event(json, methods=['GET', 'POST']):
    print('received my event: ' + str(json))
    socketio.emit('my response', json, callback=messageReceived)

但是,我从来没有看到 "messageReceived "函数在服务器上执行? 我希望在服务器的命令提示符中看到 "消息已收到!!!",但我没有看到。 是否有一些东西需要从客户端发送回来,以便执行回调,或者它应该自动发生? 其他所有的功能都和你期望的一样。

这是客户端的javascript。

socket.on('my response', function( msg ) {
    console.log( msg )
    if( typeof msg.user_name !=='undefined') {
        $('h3').remove()
        $('div.message_holder').append('<div><b style="color: #000">'+ msg.user_name +'</b> '+ msg.message +'</div>')
    }
})
python flask flask-socketio
1个回答
0
投票

问题是回调的对象是"..."。 从客户端自动完成。 在客户端的javascript中添加了这个功能,现在一切都能正常工作。

socket.on('my response', function( msg, callback ) {
    console.log( msg )
    if( typeof msg.user_name !=='undefined') {
        $('h3').remove()
        $('div.message_holder').append('<div><b style="color: #000">'+ msg.user_name +'</b> '+ msg.message +'</div>')
    }
    callback();
})

文档 也是很有帮助的。

© www.soinside.com 2019 - 2024. All rights reserved.