gpt4 book ai didi

python - Flask SocketIO 从服务器发送消息到房间

转载 作者:太空狗 更新时间:2023-10-29 21:07:05 27 4
gpt4 key购买 nike

在我的 app 中,我需要 client 加入一个 room 以便它可以 receive 消息来 self 的服务器

服务器代码

@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;
});

网页一加载,我就在名为“加入”网页表单中输入“venue_1” >。

服务器端的变量 room也设置为“venue_1”

问题是,当我调用 API /scan/user/... 时,我的 client 上什么也没有出现。然而,

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

确实显示正确。

最佳答案

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

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

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

关于python - Flask SocketIO 从服务器发送消息到房间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31200832/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com