non vorrei lavorare

2020年度からの小学校プログラミング教育の必修化を親として迎えるブロガーの書く、子供との日常

Julia言語で久しぶりにHTTPをHTTP.jlや生ソケット通信で喋って、動画配信を試した

こんばんは、次男の習いごとのスケジュールが調整できず、久しぶりに平日に休んで教室に連れて行った@kjunichiです。

背景

2万円台のroombaを手に入れて、子供たちとWebカメラをつけた遊んでいる。

www.instagram.com

この際にカメラの画像をMJPEGで送信するmjpg-streamerなるソフトの存在を知った。

思っていたよりも遅延がなく以前GLSLをサーバ側でレンダリングしてKindleにHSLで配信した際は、かなりのディレイがあった記憶があったのでこれに感心した。

このmjpg-streamerを調べたら、HTTPでContent-Typeに「multipart/x-mixed-replace」なる指定をしており、この指定をすることで、 ブラウザとソケット通信がつながった状態になり、次々と画像なり、データの塊を送れる模様だった。

Pythonが文部省では使われつつあるようだが、そんな時代遅れな言語だけを我が家の子供たちに学ばせることはできないので、天下のMIT様で開発されているJulia言語を子供たちに学ばせようと思っている。

そこで、JuliaでこのようなWebカメラの画像の配信を行えないかと考え実験した。

HTTP.jlでやってみた

試したコード

Socketでベタに試した

実は、HTTP.jlでは当初うまくいかず、libuvを使っていそうなことが分かる難しいエラーが出力されていた。 そこで、以下のSocketで一から作成することも試した。

おわりに

数年前にHTTP2を熱心に勉強していたが、ブランクができてしまい、HTTP1.1も怪しくなっていること自覚できた。 HTTP 200 OKを返さなくても、少なくともFirefoxはコンテンツを表示してくれることが分かるなど学びがあった。

参考資料

moewe-net.com

関連記事

5年前の記事

4年前の記事