From 9840b9eb95de2ec1eefd616517bfe1d47bcb6968 Mon Sep 17 00:00:00 2001 From: Hendrik Langer Date: Thu, 6 Aug 2020 15:01:32 +0200 Subject: [PATCH] only send messages to target --- raspberry/roberto/views/websocket/routes.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/raspberry/roberto/views/websocket/routes.py b/raspberry/roberto/views/websocket/routes.py index 127e074..9a50b1f 100644 --- a/raspberry/roberto/views/websocket/routes.py +++ b/raspberry/roberto/views/websocket/routes.py @@ -59,20 +59,28 @@ def camera(): @socketio.on('message') # ok def webrtc_message(data): - sid = request.sid + from_sid = request.sid + target_sid = None #print('Message from {}: {}'.format(sid, data)) if isinstance(data, str): try: jsonData = json.loads(data) - jsonData['from_sid'] = sid + jsonData['from_sid'] = from_sid + if 'sid' in jsonData: + target_sid = jsonData['sid'] data = json.dumps(jsonData) except json.JSONDecodeError: print("could not decode json") elif isinstance(data, dict): - data['from_sid'] = sid + data['from_sid'] = from_sid + if 'sid' in data: + target_sid = data['sid'] else: print("unknown message type") - socketio.emit('message', data=data, room=ROOM, skip_sid=sid) + if target_sid: + socketio.emit('message', data=data, room=target_sid) + else: + socketio.emit('message', data=data, room=ROOM, skip_sid=from_sid) @socketio.on('battery') # ok def battery_message(data):