2019년 10월 31일 목요일

react-native-webrtc ICE candidates 이상증상

시스템 구성 환경

  1. 서버 : janus-gateway
  2. 클라이언트
    • react-native
    • react-native-webrtc
  3. STUN 서버
    • google
  4. 테스트 Mobile
    • 갤럭시 S9+
    • Android 9


이상 증상에 따른 대처 내용 들

  1. 발견
    • 로컬 로그 분석
    • 서버 로그 분석
    • 분석 결과 onicecandidate 의 데이터가 부족한것으로 확인
    • Android 로그 분석
    • react-native-webrtc 에서 dependency 하고 있는 org.webrtc 에서 오류 뿜뿜
    • ICE candidate 데이터 교환 이상은 org.webrtc 에서 발생 하는 오류로 확인
  2. 처리
    • Unable to obtain permission to request a cellular network. 로그 발생
      • Android 의 시스템 작성 권한이 없어서 발생 하는 로그 로 확인
      • <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 추가해주고 수동으로 앱 설정의 시스템 권한 부여 함으로 해결. 추후 사용자에게 알림 진행 후 설정 화면으로 이동하여 부여 하도록 안내 해야 함.
      • 직접적인 request 후 해당 권한을 부여 할수있는 prcess 가 없음. 안드로이드의 가이드에 의하면 설정화면으로 보내서 사용자에게 수동으로 권한 부여하도록 안내 해야 함.
    • Null interface name for network. 로그 발생
      • 실질적은 문제는 요놈 이었다.
      • org.webrtc.NetworkMonitorAutoDetect.java.java 에 보면 networkToInfo method 가 있는데 name 가져오다 오류 발생 해서 ICE candidate 정보에 누락이 발생 한 것이다.
      • 처리 방법은 뭐 더 찾아 볼 예정.



댓글 없음:

댓글 쓰기