μ±μμ Agora SDKλ₯Ό ν΅ν΄ μμ± μ±ν
κΈ°λ₯μ ꡬννλλ°, μ§μμλ μ λμ§λ§ νμ¬μμλ onUserJoined() μ½λ°±μ‘°μ°¨ μ€μ§ μλ νμ, νΉμ κ²ͺμ΄λ³΄μ
¨λμ?
μ ν¬λ μ΅κ·Ό μ΄ λ¬Έμ λ₯Ό κ²ͺμΌλ©° μμΈμ λΆμνκ³ , ν΄κ²° λ°©λ²μΌλ‘ Agoraμ Cloud Proxy κΈ°λ₯μ μ¬μ©νμ΅λλ€.
μ΄λ² κΈμμλ Agora Cloud Proxyμ μλ λ°©μ, λΉμ©, μ€μ λ°©λ²μ μ 리ν΄λ립λλ€.
λ¬Έμ μν© μμ½
β’
Agora SDKμ joinChannel νΈμΆμ μ±κ³΅
β’
νμ§λ§ νμ¬ λ€νΈμν¬μμλ onUserJoined() μ½λ°±μ΄ μμ μ€μ§ μμ
β’
λμΌν κΈ°κΈ°/μ±μΌλ‘ μ§μμλ μ μ μλ β λ€νΈμν¬ νκ²½ μ°¨μ΄λ‘ μΆμ
μμΈ: κΈ°μ
λ€νΈμν¬μ λ°©νλ²½ λ° ν¬νΈ μ ν
νμ¬λ κΈ°κ΄ λ€νΈμν¬λ 보μμ μ΄μ λ‘ λ€μμ μ°¨λ¨νλ κ²½μ°κ° λ§μ΅λλ€:
β’
UDP ν¬νΈ μ°¨λ¨ (3478~3481 λ±)
β’
NAT λ°©νλ²½ λλ νλ‘μ μ¬μ©
β’
Deep Packet Inspection(DPI)μΌλ‘ VoIP νΈλν½ μ ν
μ΄λ‘ μΈν΄ Agoraμ λ―Έλμ΄ μλ²μμ μ°κ²°μ΄ μ€ν¨νκ³ , μ½λ°±λ λ°μ§ λͺ»νκ² λ©λλ€.
ν΄κ²° λ°©λ²: Agora Cloud Proxy μ¬μ©
Agoraλ μ΄λ₯Ό μν΄ Cloud Proxy κΈ°λ₯μ μ 곡ν©λλ€.
μ΄λ μΌλ° μ°κ²°μ΄ λΆκ°λ₯ν λ TCP κΈ°λ° νλ‘μ μλ²λ₯Ό κ²½μ ν΄ μμ μ μΌλ‘ ν΅μ νκ² ν΄μ£Όλ κΈ°λ₯μ
λλ€.
Cloud Proxy μ€μ λ°©λ²
1. μ½μμμ Cloud Proxy νμ±ν
Agora μ½μ μ μ: https://console.agora.io
β’
[Project Management] β ν΄λΉ νλ‘μ νΈ μ ν
β’
[Advanced Features] ν β Enable Cloud Proxy ν κΈ ON
β’
μ½ 24μκ° λ΄ μ μ©λ¨
2. SDKμμ Cloud Proxy μ¬μ© λͺ μ
Android (Kotlin)
val rtcEngine = RtcEngine.create(context, "YOUR_APP_ID", rtcEventHandler)
rtcEngine.setParameters("{\"rtc.proxy\":2}")
rtcEngine.joinChannel("YOUR_TOKEN", "YOUR_CHANNEL_NAME", "", 0)
Kotlin
볡μ¬
iOS (Swift)
let agoraKit = AgoraRtcEngineKit.sharedEngine(withAppId: "YOUR_APP_ID", delegate: self)
agoraKit.setParameters("{\"rtc.proxy\":2}")
agoraKit.joinChannel(byToken: "YOUR_TOKEN", channelId: "YOUR_CHANNEL_NAME", info: nil, uid: 0, joinSuccess: nil)
Swift
볡μ¬
λΉμ©μ? 무λ£μΈκ°μ?
Cloud Proxyλ κΈ°λ³Έμ μΌλ‘ λ¬΄λ£ μ²΄νμ΄ μ 곡λλ©°, μκ·λͺ¨ μ¬μ©μλ μΆκ° μκΈμ΄ μμ΅λλ€.
쑰건 | λ΄μ© |
30μΌ λ¬΄λ£ μ²΄ν | μ΅λ 50λͺ
λμ μ¬μ©μκΉμ§ κ°λ₯, μλ μ’
λ£ |
μ λ¬΄λ£ μ¬μ©λ | Cloud Proxy 10,000λΆκΉμ§ λ¬΄λ£ |
μ λ£ μ ν 쑰건 | λ¬΄λ£ μ¬μ©λ μ΄κ³Ό λλ λκ·λͺ¨ μ¬μ© (μ $500 μ΄μ μκΈ λ°μ κ°λ₯μ±) |
체νμ νμ¬ λΉ 1νλ§ κ°λ₯νλ©°, μ½μμμ μ μ² ν μ¬μ© κ°λ₯
κ²°λ‘
β’
Agoraλ κΈ°λ³Έμ μΌλ‘ μλ νλ‘μ fallbackμ μ 곡νμ§ μμ΅λλ€.
β’
Cloud Proxy μ¬μ©μ μν κ²½μ°, λ°λμ μ½μμμ νμ±ννκ³ SDKμμλ λͺ
μμ μΌλ‘ μ€μ ν΄μΌ ν©λλ€.
β’
ν
μ€νΈλ μκ·λͺ¨ μ΄μμμλ λΉμ© μμ΄ μ¬μ©ν μ μμΌλ λΆλ΄ μμ΄ μ μ©ν΄λ³΄μΈμ.
보λμ€: λ‘κ·Έλ‘ νμΈνκΈ°
νλ‘μκ° μ μ©λμλμ§ νμΈνλ €λ©΄ Agora SDKμ λ‘κ·Έ κΈ°λ₯μ μ¬μ©νμΈμ.
rtcEngine.setLogFile("/sdcard/agora/agora.log")
Kotlin
볡μ¬
Agoraλ₯Ό μμ μ μΌλ‘ μ΄μνλ €λ©΄ λ€νΈμν¬ νκ²½μ λ°λΌ μ μ°νκ² λμνλ κ²μ΄ μ€μν©λλ€.
νλ‘μ μ€μ ν μ€λ‘ νμ¬ λ΄ λ€νΈμν¬ λ¬Έμ λ₯Ό λ§λν ν΄κ²°ν΄λ³΄μΈμ!
