kafka-motion-sensor
[Nuxt Vue]
| XHR(json/container)
[Nuxt Middleware(express)/Node.js/Server]
| kafka(json/container)
[kafka broker]
- ngrok account 開発時向け go to https://ngrok.com/ create account get token echo NGROK_AUTHTOKEN={your token} > .env
# install dependencies
$ yarn install
# serve with hot reload at localhost:3000
$ yarn dev
# build for production and launch server
$ yarn build
$ yarn start
インターネットからアクセスするためにはngrok等で対応する
$ ngrok http 3000
スマホの加速度の情報を参照するには `https://` でのアクセスが必須になります
PCでもデータを投入できるようにしてあります。(後述)
nuxtで作ったSPAっぽいアプリを読み込み、 SPAからxhrでjson/containerをnuxt/api(=express/node.js)へ送る そこからkafkaクラスタへ送付する
group Init
Browser -> Nuxt: Request
Nuxt->Browser: Document
end
group send data [recursive post/post]
Browser->Browser: Motion
Browser->NuxtApi: xhr
NuxtApi->KafkaCluster: kafka
end
api/index.js
にkafkaへの接続設定(IPアドレスなど)があります。
環境変数の読み込みが簡単には思えなかったのでハードコードです。(要修正)
- 定期的にxhrを送信するときの設定値(2.を有効にしたときに使われる値)
- チェック時に定期的にデータをxhrで送信する。
- 送るデータ(json/container/json&container) json&containerはxhrをjsonとcontainerで独立して発行します
- (ほぼ📱限定)
https://
でアクセスしている際に加速度の情報にJavaScriptからアクセス可能にします - 疎通チェック、
Browser
とNuxtAPI
間が疎通していることを確認します - 現在の加速度や傾き情報を1回だけ送信します
- 加速度や傾き情報を乱数を元に適当に更新します。値の更新のみであり次回以降のxhrに使われます。
リアルタイムの値の変更反映なので 1と2の機能で定期的に値を更新している状態で、7を操作したさいにその変更がみられることがゴールになると思います。