self.webrtc.emit('add-ice-candidate', sdpmlineindex, candidate)
async def run(self):
- async with websockets.connect(self.uri, ssl=self.ssl_context) as websocket:
- self.websocket = websocket
- self.start_pipeline()
- async for msg in websocket:
- msg_json = json.loads(msg)
- msg_type = msg_json['Type']
- msg_value = msg_json['Value']
- session_id = msg_json['SessionID']
- log.info(f"receive for session {session_id} type {msg_type}")
- if msg_type == 'newSession':
- self.session_id = session_id
- elif msg_type == 'gotOffer':
- value_json = json.loads(msg_value)
- sdp = value_json['sdp']
- self.handle_sdp(sdp)
- elif msg_type == 'addCallerIceCandidate':
- value_json = json.loads(msg_value)
- self.handle_ice(value_json)
- self.close_pipeline()
- self.websocket = None
- self.session_id = None
+ try:
+ async with websockets.connect(self.uri, ssl=self.ssl_context) as websocket:
+ self.websocket = websocket
+ self.start_pipeline()
+ async for msg in websocket:
+ msg_json = json.loads(msg)
+ msg_type = msg_json['Type']
+ msg_value = msg_json['Value']
+ session_id = msg_json['SessionID']
+ log.info(f"receive for session {session_id} type {msg_type}")
+ if msg_type == 'newSession':
+ self.session_id = session_id
+ elif msg_type == 'gotOffer':
+ value_json = json.loads(msg_value)
+ sdp = value_json['sdp']
+ self.handle_sdp(sdp)
+ elif msg_type == 'addCallerIceCandidate':
+ value_json = json.loads(msg_value)
+ self.handle_ice(value_json)
+ self.close_pipeline()
+ self.websocket = None
+ self.session_id = None
+ except:
+ log.error(f'Connection to "{self.uri}" failed')
+ sys.exit(1)
def check_plugins():