Flask SocketIO将消息从服​​务器发送到空间

在我的app ,我需要client加入一个room以便它可以从我的server receive消息。

服务器代码

@socketio.on('join', namespace='/test')
def join(message):

    join_room(message['room'])
    room = message['room']
    emit('my response', {'data': 'Entered the room ' + message['room']}, room=room)


@app.route('/scan/user/<int:user_id>/venue/<int:venue_id>', methods = ['POST'])
@auth.login_required
def scan_tablet_user_func(user_id, venue_id):

    room = 'venue_' + str(venue_id)
    socketio.emit('my response', {'data': json.dumps(my_info, ensure_ascii=False)}, room=room)

客户代码

$('form#join').submit(function(event) {
            socket.emit('join', {room: $('#join_room').val()});
            return false;
        });

只要webpage加载,我"venue_1"在名为"join"webpage form输入"venue_1" "join"

server端的variable room也被设置为"venue_1"

问题是当我调用API /scan/user/... ,我的client上没有显示任何内容。 然而,

emit('my response', {'data': 'Entered the room ' + message['room']}, room=room)

确实显示正确。


我认为您需要为您在API调用中发出的命名空间参数提供一个名称空间参数,因为您已经定义了一个名称空间。

socketio.emit('my response', {'data': json.dumps(my_info, ensure_ascii=False)}, room=room, namespace='/test')

如果您不提供名称空间,则将使用默认名称空间。

链接地址: http://www.djcxy.com/p/86453.html

上一篇: Flask SocketIO send message from server to room

下一篇: Concurrent load handling in Django