Skip to content
Kouji Takao edited this page Oct 28, 2022 · 14 revisions

メッシュ拡張機能

この拡張機能は Scratch 1.4 の Mesh (英語) と同じ機能をスモウルビーでも使えるようにしたもので、同じネットワーク(※)にある複数のスモウルビー間で双方向にやりとりできる(双方向性のある)プログラムを作成できます。 (※インターネットを使います。別のネットワークのスモウルビー間でやりとりする方法は下の方に書いています)

具体的には、次の2つの機能が使えます。

(1) ([▼]センサーの値) ブロック

センサーの値

このブロックは、他のスモウルビーの変数の値を見るためのものです。 例えば、他のスモウルビーで「messageA」変数を「わたしのなまえはスモウルビーです」にすると、即座に([messageA▼]センサーの値) は「わたしのなまえはスモウルビーです」になります。

(2) |[メッセージ1▼]を送る| ブロック、|[メッセージ1▼]を送って待つ| ブロック

メッセージ1を送る、メッセージ1を送って待つ

これらのブロックで送ったメッセージが、他のスモウルビーにも届くようになります。 例えば、他のスモウルビーで「messageA」を送ると、^[messageA▼]を受け取ったとき| ブロックが反応します。

これらの機能を使えば、スモウルビーを利用して中学校の技術科の「D(2) ネットワークを利用した双方向性のあるコンテンツのプログラミング」の授業を行うことができます。Scratch 1.4用のものですが 開隆堂のやってみようプログラミング が参考になります。

中学校学習指導要領(平成29年告示) より

D 情報の技術

(2) 生活や社会における問題を,ネットワークを利用した双方向性のあるコンテンツのプログラミングによって解決する活動を通して,次の事項を身に付けることができるよう指導する。

ア 情報通信ネットワークの構成と,情報を利用するための基本的な仕組みを理解し,安全・適切なプログラムの制作,動作の確認及びデバッグ等ができること。

イ 問題を見いだして課題を設定し,使用するメディアを複合する方法とその効果的な利用方法等を構想して情報処理の手順を具体化するとともに,制作の過程や結果の評価,改善及び修正について考えること。

メッシュ事例 (中学校の先生向け)

実際の授業の指導案、ワークシート、プログラム例は こちら からご確認いただけます。

特定の学校のみ、または、別のネットワークのスモウルビー間でやりとりする方法

この拡張機能では、同じネットワークのスモウルビー間でのみやりとりできます。これは学校の授業で使うときに、意図せず他の学校の生徒のホストに参加してしまうことを防ぐためです。

しかしながら、次のような場面では特定のスモウルビーとだけ通信したり、別のネットワークのスモウルビー間でやりとりしたいことがあると思います。

  • 学校の特定のクラスやクラブだけで通信する
    • => 同じネットワークにたくさんのスモウルビーがあるため、もっと絞り込みたい
  • 同じ学校のタブレットなのにLTEでつないでいるため、別々のネットワークとして扱われてしまい通信できない
  • オンラインのプログラミング教室(授業)なので、別々のネットワークにつないでいるため通信できない
    • => 別のネットワークのスモウルビー間でやりとりしたい

そこで、スモウルビーのURLの末尾に https://smalruby.app?mesh=690-2102 のように 「?mesh=郵便番号」 をつけることで特定のメッシュのホストにだけ参加できるようにしています。例として郵便番号を挙げましたが、プログラミング教室名とか、合言葉とか、半角英数字で10文字以下であればなんでもいいです。

とはいえ他と重なると困るため、学校の授業で使う場合は、生徒に伝えるURLやブックマークに 「?mesh=郵便番号」 をつけるようにするといいでしょう。

通信要件

この拡張機能は SkyWay というサービスを利用しているため、 SkyWay の通信要件を満たす必要があります。また、同じネットワークであることを特定するためにスモウルビー独自のサービス api.smalruby.app と HTTPS で通信できる必要があります(最下行)。

通信方向 プロトコル ポート番号 サーバアドレス
スモウルビー → インターネット TCP(HTTPS) 443 dispatcher.webrtc.ecl.ntt.com
スモウルビー → インターネット TCP(HTTPS) 443 *.webrtc.ecl.ntt.com
スモウルビー → インターネット UDP 3478 stun.webrtc.ecl.ntt.com
スモウルビー ←→ スモウルビー UDP 1024〜65535の間で動的に決まる 動的に決まる
スモウルビー → インターネット UDP or TCP 443 turn.webrtc.ecl.ntt.com
インターネット → スモウルビー UDP 1024〜65535の間で動的に決まる turn.webrtc.ecl.ntt.com
スモウルビー → インターネット TCP(HTTPS) 443 api.smalruby.app

参考: SkyWay サポート > FAQ > SkyWayの仕様: SkyWayの通信要件について教えて下さい

※ SFUサーバ向け通信、録音制御サーバ向け通信、録音サーバ向け通信は利用していません。

謝辞

メッシュ拡張機能は SkyWay のCommunity Edition (無料版)を利用しています。 毎月 50 万回のシグナリング (メッシュのホストになると2回、メッシュに参加すると1回消費)までは無料で利用できますので、このようなサービスを提供してくださることに感謝しつつ、大切に使っていきましょう。