Potrzebuję, aby dołączyć client
do przyłączenia się do room
, dzięki czemu może wtedy wiadomości z mojego server
.Kolba SocketIO wysyła wiadomość z serwera do pokoju
Code Server
@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)
kod klienta
$('form#join').submit(function(event) {
socket.emit('join', {room: $('#join_room').val()});
return false;
});
Jak tylko webpage
ładunki, wchodzę "venue_1"
do webpage form
pt "join"
.
Strona variable
room
po stronie server
jest również ustawiona na "venue_1"
.
Problem polega na tym, że po wywołaniu API
/scan/user/...
nic nie pojawia się na moim client
. Jednak
emit('my response', {'data': 'Entered the room ' + message['room']}, room=room)
wyświetla się poprawnie.
Prawidłowe. Podczas odpowiadania na zdarzenie wysłane przez klienta przestrzeń nazw jest uzyskiwana ze zdarzenia klienta. Gdy serwer jest inicjatorem, ten kontekst nie istnieje, więc musisz podać przestrzeń nazw. – Miguel