第30話
新しいルーズリーフの上に、罫線なんか無視して、二海はまた『サーバー』や『ブラウザ』、『WebSocket』『データ』などと書いていった。
(WebSocketでデータをやりとりしてるのはわかったし、そのデータの中身もわかった。でも、そのデータの中身が意味わからない)
二海は『???』と『データ』の横に付け加えた。シャーペンをノックしながら、二海は考えた。
(でも変だよね……意味はわからないけど、実際に地図は動いてるんだから、ブラウザとサーバーはこのデータを理解してるんだ。じゃあ、これは適当に文字を並べたわけじゃなくて、意味のあるもので……ブラウザはどうやって解釈してる? そういう処理はJavaScriptでやるから、そうだ、JavaScriptのコードを見てみよう)
二海はJavaScriptのファイルをダウンロードし、エディターで開いた。『WebSocket』で検索し、ヒットした周辺のコードを読む。
データを受け取った後どうするかを書いてあるところの処理で、二海は見慣れないものを見つけた。『Base58』というオブジェクトだ。見た限りでは、この『Base58』は受け取ったデータに何かをしている。
Base58、について二海はまた調べた。エンコード方式の一種、つまり文字や画像や様々なデータを、英数字だけを使って表現するやりかたの一つということだった。データをやりとりするときには、通信の相手や通信の間にはいっているものが、英数字以外の文字を扱えないことがある。なので、例えば『あ』は『4g1』という英数字で代わりに表すことにするというルールを決めておくのだ。こうすれば送りたいデータを英数字だけに変換し、受け取った相手もそれをもとに戻せばどんなデータでも送り合うことができる。
なら、この意味のなさそうな文字列の並びも、もとに戻す処理をしてやれば……。二海はオンラインでBase58に変換したりもとに戻したりするツールを見つけ、先程の文字列を入力した。
『{
"longitude": 139.741398,
"latitude": 35.699399,
"comment": "あああ"
}』
と出た。
思ったとおりだ、と二海は軽く何度も頷いた。緯度経度と、コメントをやりとりしていたのだ。
二海はその前後の、ブラウザから地図サービスに送っているデータの中身も調べた。緯度と経度を指定し、Base58で変換して送れば、コメントが取れることがわかった。後は富士山の緯度と経度を調べて、それを送ってやればいい。
富士山の緯度経度は、気象庁のサイトでみつかった。Base58に変換して送信するデータの用意もできた。後はWebSocketで送るだけだ、となって、二海はWebSocketでどうやってデータを送ったらいいのか知らないことに気がついた。
二海は問題ページからHTMLとJavaScriptをまるっとダウンロードした。それを自分のパソコンの中に置いて開き、JavaScriptを富士山の緯度経度を送るように編集する。WebSocketを使う処理はもうこのサービスの中にあるのだから、それを改造すればいいと思ったのだ。
それでも、改造はすんなりとはいかなかった。一箇所を変更するとエラーが出て、エラーメッセージを調べては書き直す。書き直してはブラウザをリロードし、また直してはリロードした。夢中だった。まだまだ解くべき問題は残っているのだから、こんなところでずっと止まっているわけにはいかない。
何回目、何十回目かのリロードで、エラーを示す赤い丸が消えた。そしてコンソールに、『"comment": "ajsec_junior_{5460afc950b41eb4fbd7e7614a4270c7}"』という、輝かしい文字列が現れた。
「やった!」
イエス、ともフウウー、とも言うべき場面だった。二海はがたりと立ち上がった。しかし一人でそうしているのはなんだか意味がないようで、二海はちょっとしてからおとなしくまた椅子に戻った。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます