티스토리 뷰
1. WebRTC란?
- 웹 브라우저간의 플러그인의 도움 없이 서로 통신할 수 설계된 API 이다
- 예제는 googlecodelabs에서 제공해주는 webrtc-web 코드에서 살펴볼 수 있다.
https://github.com/googlecodelabs/webrtc-web
2. WebRTC 예제 step05
Visual Studio Code 접속 후 step-05에 들어가서 terminal에 다음을 입력하여 webRTC의 web이 구현하게 만든다.
>> npm install
>> node index.js
이러한 localhost에 Realtime communication with WebRTC가 실행되게 된다.
3. WebRTC web과 Android 연결시 놓쳤던 사항
* 내가 하려는 작업? react로 서버쪽에 API를 만들고 안드로이드 쪽에서 앱을 만들어 API 통신하는 형식으로 구성
* 이때 안드로이드 에뮬레이터에서 local host로 접속하게 되면 바로 접속이 안된다. 이것때문에 https로도 바꿔보고 생각을 무지하게 해봤는데 결론적으로는 공식문서를 가지고와서 보자
공식문서에는 Emulator의 각 인스턴스는 가상 라우터/ 방화벽 서비스 뒤에서 실행 되어 개발 머신 네트워크 인터페이스 및 설정과 인터넷에서 격리된다. 에뮬레이션된 기기는 네트워크에서 개발 머신이나 다른 에뮬레이터 인스턴스를 볼 수 없습니다. 대신 이더넷을 통해 라우터/방화벽에 연결되어 있는 것만 봅니다.
각 인스턴스의 가상 라우터는 10.0.2/24 네트워크 주소 공간을 관리합니다. 라우터가 관리하는 주소는 모두 10.0.2.xx 형식이고 여기서 xx는 숫자입니다. 이 공간 내의 주소는 다음과 같이 에뮬레이터/라우터에 의해 미리 할당됩니다.
또한 개발 머신의 주소 127.0.0.1은 에뮬레이터의 자체 루프백 인터페이스에 상응함에 주의하세요. 개발 머신 루프백 인터페이스(머신의 127.0.0.1)에서 실행되는 서비스에 액세스하려면 특수 주소 10.0.2.2를 대신 사용해야 합니다.
결론적으로는 안드로이드에서 WebRTC 소켓 연결시 localhost를 직접연결해주는 것이 아니라,
socket=IO.socket("http://10.0.2.2:8080");
형식으로 연결해주어야지 웹(step05)과 android가 서로 연결이 된다.
두개다 연결이 제대로 되면 web과 안드로이드 화면에서 제대로 연결이 되게 되어 확인할 수 있다!
'Programming > Android' 카테고리의 다른 글
[JAVA/Android] Android Architecture Components - MVVM, MVP, Clean 아키텍쳐 비교 (0) | 2020.09.18 |
---|---|
[Android] 안드로이드 백그라운드 작업 (0) | 2020.09.03 |
[Android] android class 정리 (0) | 2020.08.31 |
[Android] 안드로이드 AppRTC 실행 및 오류 (0) | 2020.08.14 |
[Android] Kotlin 로그 출력 방법 (0) | 2020.08.11 |
댓글