我的設置如下所示:Nodemcu和樹莓派連接到WiFi路由器。我在Nodemcu中的lua代碼需要通過WLAN調用託管在樹莓派中的REST API。nodemcu私有IP(WLAN)連接失敗
但我看得出來,連接失敗:
http.get("http://192.168.43.100:8080/api/logdevice", nil, function (code, resp) print(code, resp) end)
> --http.get("http://example.com", nil, function (code, resp) print(code, resp) end)HTTP client: Disconnected with error: -11
HTTP client: Connection timeout
HTTP client: Connection timeout
當我給一個互聯網地址(http://example.com),請求成功。
我能夠從同一WiFi網絡中的另一臺筆記本電腦訪問REST API。
我已驗證的無線網絡設置是通過使用Lua代碼正確:
ip, netmask, gateway = wifi.sta.getip()
是否有任何限制在nodemcu在訪問私有IP地址?
UPDATE 1:我將nodemcu設置爲接入點並將API服務器連接到它。現在nodemcu能夠訪問API。但這不是我需要的WiFi設置。我需要nodemcu成爲WiFi站。所以我認爲這可能是路由表中的問題。在將nodemcu連接到外部AP後,是否應該執行額外的路由配置?
如果您使用底層的'net'模塊而不是'http'模塊,它可以工作:https://nodemcu.readthedocs.io/en/latest/en/modules/net/#netsocketon –
@MarcelStör那也失敗了 – Kiran
因此,您可以從NodeMCU訪問互聯網,但不能訪問您的專用網絡中的資源?我不知道這方面的已知問題或限制。事實上,無論是HTTP還是網絡操作,私有資源都不會成功。恕我直言,建議在您的一端使用「阻塞」網絡組件。 –