Open elie-j opened 4 months ago
考えられること:
⇒ RasPiの設定をデフォルト無効化するワークアラウンドをいれておく? or ⇒ 今どきはIPv6のほうがデフォルトで、トラブルシューティングの方を充実させる?
⇒tutorial.chirimen.org IPv6 対応?
追記: IPv6 対応済み
Cloudflare Pages 対応(#88)後 tutorial.chirimen.org は IPv6 対応済み (注記: 2024-04-09現在)
- JS GET で接続する先の tutorial.chirimen.org が IPv6 非対応?
⇒tutorial.chirimen.org IPv6 対応?
$ dig +short tutorial.chirimen.org AAAA
2606:4700:3033::ac43:aa8c
2606:4700:3037::6815:3f66
$ dig +short tutorial.chirimen.org
104.21.63.102
172.67.170.140
$ curl -6 https://tutorial.chirimen.org/pizero/esm-examples/hello-real-world/main.js
import {requestGPIOAccess} from "./node_modules/node-web-gpio/dist/index.js";
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec));
async function blink() {
const gpioAccess = await requestGPIOAccess();
const port = gpioAccess.ports.get(26);
await port.export("out");
for (;;) {
await port.write(1);
await sleep(1000);
await port.write(0);
await sleep(1000);
}
}
blink();
Cloudflare Pages 対応前もきっとDNS側はIPv6対応されていたと思うけど、IPv6環境で問題が発生したことがあるということで、チュートリアルができるか確認する。
IPv6環境でのチュートリアルですが、自前の環境で試してみました。
pi@raspberrypi:~/myApp$ ping localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.283 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.277 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.279 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.277/0.279/0.283/0.002 ms
pi@raspberrypi:~/myApp$ cd ~/myApp
pi@raspberrypi:~/myApp$ wget https://tutorial.chirimen.org/pizero/esm-examples/hello-real-world/main.js -O main-hello-real-world.js
--2024-05-24 14:23:22-- https://tutorial.chirimen.org/pizero/esm-examples/hello-real-world/main.js
tutorial.chirimen.org (tutorial.chirimen.org) をDNSに問いあわせています... 2606:4700:3033::ac43:aa8c, 2606:4700:3037::6815:3f66, 172.67.170.140, ...
tutorial.chirimen.org (tutorial.chirimen.org)|2606:4700:3033::ac43:aa8c|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [application/javascript]
`main-hello-real-world.js' に保存中
main-hello-real-wor [ <=> ] 421 --.-KB/s 時間 0s
2024-05-24 14:23:23 (1.09 MB/s) - `main-hello-real-world.js' へ保存終了 [421]
この問題とは別に、ネットワークに接続されてない状態でも JS GET をすると、PiZero に空のファイルが作られるのでそこは注意点かもと思いました。
- JS GET を押す>エッジ側に該当するファイル名の空ファイルを作成>チュートリアルサイトのコードを DL してエッジのファイルに書き込み
の動作をしていると思いますが、コードの DL に失敗すると何も記述されないファイルだけ PiZero 内に出来てしまうので、初学者は DL 失敗に気づかないで実行すると動作しない!と言う事になります。
note: IPv6 以外でもそもそも wifi 設定していない状態 JS GET をすると wget に失敗してからのファイルが出来るケースがあるように思う (ので注意書きをしておくのが良さそう)。
2023年度の塩尻会場のハンズオン中、JS_GET が出来ない事象が発生。 現地メンターの方が以下のドキュメントを急遽作成して対応してくださいました。 JSGETができない問題の対策.pptx