簡體   English   中英

通過 Internet 訪問 Android 設備上的 API

[英]Accessing an API on an Android device over the Internet

我有一個 Android 設備的用例,我似乎無法理解。 它的要點是我希望能夠通過 Internet 將 API 命令從我的服務器發送到我的 Android 應用程序。 如果我的服務器應用程序托管在 LAN 上,則該解決方案已經有效:每個 Android 設備都有一個 IP,我將命令發送到每個設備的 IP。 如果我的服務器在雲端怎么辦? 有沒有辦法讓我的服務器應用程序直接連接到我的 Android 設備而無需本地服務器?

在這個用例中,Android 設備通過 WiFi 或以太網連接到網絡,並且網絡可以訪問 Internet。

任何建議都會很棒,謝謝!

當您在局域網中時,您的服務器和客戶端(Android 設備)都分配有虛擬 IP,因此彼此看到沒有問題。

但是,當您將服務器應用程序移至雲端時,它無法再看到您的 Android 設備,因為您的設備已被 NAT 隱藏。 服務器只能看到網關(您的 wifi 路由器)IP。

您可以嘗試一些方法:

  1. 為您的 Android 設備分配一個 static IP,並配置您的網關以進行端口轉發以將網絡流量重定向到您的設備。 然后您的服務器可以通過發送到 your-gateway-ip:port 來查看您的設備。 但這通常不是首選方式,除非您始終可以完全控制客戶端網絡環境。

  2. 將應用程序協議更改為類似 MQTT 的協議。 在這種情況下,您的服務器和客戶端都可以連接到這個“代理”服務器,因此無論您的客戶端是否在 NAT 下,都可以交換數據。 但是,您可能需要設置這個額外的代理服務器。

  3. 尋找其他第三方通知服務來做這個服務器到客戶端的通信,例如 Google Firebase。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM