Takahiro55555 / WebSocketRelayServer

WebSocketの中継用サーバ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WebSocketRelayServer

※)電気通信事業法の適用がある「他人の通信を媒介」するサービスとなってしまうため、本システムは一般公開しておりません。

これは何?

WebSocketのデータを中継するためのWebサーバです。 PythonのWebフレームワークである Tornado を使用しています。

また、トークンや認証情報(メールアドレス、ハッシュ化したパスワード)を保存するためのDBにはSQLiteを、ORMには SQLAlchemy を使用しています。

バーチャルホストとHTTPSに対応させるために、 jwilder/nginx-proxy というDockerイメージと jrcs/letsencrypt-nginx-proxy-companion というDockerイメージを使用し、公開しました。

なぜ作った!?

スマートフォンのブラウザから、ジャイロセンサーの値をRaspberry Piへ送信し、スマートフォンの傾きとRaspberryPiのカメラの傾きを連動させようと考えたのがきっかけです。

AWS IoTPusher を使用しなかったのは、ただ単にこのようなシステムを作って見たかったからです。

構成

  • 端末:iPhone7
  • 制御ボード:Raspberry Pi 4
  • Google Compute Engine f1-micro(vCPU x 1、メモリ 0.6 GB)
  • サーバゾーン:us-east
  • 端末地域:日本
  • 動画配信:WebRTC Native Client Momo

動作の様子

以下の動画は、実際に使用した際の動画です。クリックすることで見ることができます(Twitter)。 thumbnail

About

WebSocketの中継用サーバ


Languages

Language:Python 75.8%Language:JavaScript 19.1%Language:HTML 3.0%Language:Dockerfile 1.8%Language:CSS 0.3%