設定は次のとおりです:NodemcuとラズベリーパイはWiFiルーターに接続されています。 Nodemcuの私のルアコードは、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にアクセスできます。
私は、WiFiの設定はLuaのコードを使用して、正しいことを確認しました:プライベートIPアドレスにアクセスしながら
ip, netmask, gateway = wifi.sta.getip()
はnodemcuのいずれかの制限がありますか?
UPDATE 1:私はアクセスポイントをnodemcuにしてAPIサーバマシンを接続しました。今すぐnodemcuはAPIにアクセスできます。しかし、これは私が必要とするWiFiの設定ではありません。私はWiFiステーションにnodemcuが必要です。だから私はこれがルーティングテーブルの問題かもしれないと思っています。 nodemcuを外部APに接続した後に追加のルート設定が必要ですか?
'http'モジュールの代わりに低レベル' net'モジュールを使用すると動作しますか?https://nodemcu.readthedocs.io/en/latest/en/modules/net/#netsocketon –
@MarcelStörそれでも失敗しました – Kiran
NodeMCUからインターネットにアクセスできますが、プライベートネットワークのリソースはアクセスできません。この分野で私が認識している既知の問題や制限はありません。民間リソースのためにHTTPもネット操作も成功しないという事実IMHOはあなたのために「ブロック」ネットワークコンポーネントを提案します。 –