In meinem app
, ich brauche die client
eine room
so zu verbinden, dass es kann dann receive
Nachrichten von meinem server
.Flask SocketIO senden Nachricht vom Server an den Raum
Server-Code
@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)
-Client-Code
$('form#join').submit(function(event) {
socket.emit('join', {room: $('#join_room').val()});
return false;
});
Sobald die webpage
Lasten, gebe ich "venue_1"
in die webpage form
"join"
berechtigt.
Die variable
.auf der server
Seite ist ebenfalls auf "venue_1"
eingestellt.
Das Problem ist, dass, wenn ich die API
/scan/user/...
anrufen, nichts auf meiner client
erscheint.
emit('my response', {'data': 'Entered the room ' + message['room']}, room=room)
wird korrekt angezeigt.
Korrekt. Wenn Sie auf ein vom Client gesendetes Ereignis antworten, wird der Namespace vom Client-Ereignis abgerufen. Wenn der Server der Initiator ist, ist dieser Kontext nicht vorhanden, daher müssen Sie den Namespace angeben. – Miguel