LoginSignup
3
3

More than 5 years have passed since last update.

JINS MEMEのデータをsocket.ioで出力 with RxSwift

Posted at

What's JINS MEME

一言でいうと、外ではなく内を見ることのできるメガネです。詳細については以前まとめたものがありますので、そちらをご参考ください。
http://qiita.com/mito_log/items/020a87996ed2b9d793e6

Background

前々回はPOSTで出力。前回はtcpソケット通信で出力。ときて、ここまできたらsocket.ioでも出力してしまおうということで、今回はsocket.ioでJINS MEMEのデータを出力してやります。これで大抵の外部連携はできるのではないでしょうか。外堀埋めまくりです。

What to cover

今回は2部構成の1部目の記事、という体裁にしています。各部の内容は以下:

  1. ローカルに立ち上げたsocket.ioサーバを介してデータをリアルタイムにmac PCに出力する (← 本記事)
  2. mac側では受け取ったデータを使って、PCを離れると自動的に画面ロックがかかる

Network Diagram

networkDiagram.png

Screenshots

mac app

ios
autolockscreen_ios.png

Github

https://github.com/mitolog/JINSMEMESampler
今回のサンプル部分はこちら

How to use

  1. app.jsのあるフォルダで 必要に応じて npm install socket.io
  2. ios app, mac appを両方立ち上げてホストを指定してつなげる

※ 注意点

  • 毎秒約20サンプルデータがはいってくるので、できるだけネット環境のいい場所がいいです
  • disconnectボタンを押しても実際にサーバ側でdisconnectが呼ばれるまで少しラグが発生します

Recap

ちょっとしたことなのですが、RxSwiftでメソッドチェーン作っていくと、クロージャで [unowned self]をよく入れる機会があるのですが、毎回書くのを忘れてしまいそうになってヒヤヒヤします。予めRxSwift側のauto completeの一部として登録したいです。

Next...

今回のサンプルで、webを介した通信も(概ね)対応することができました。次回はJINS MEMEの記事として6つめでついに(!)アプリらしきものを作りますよ。既にネタバレしていますが、

  1. mac側では受け取ったデータを使って、PCを離れると自動的に画面ロックがかかる

を作ってみます。だいぶ JINS MEME Advent Calendar 15日目の記事に近い気もしますが、コンプライアンス的にはいんじゃないでしょうか。できるかわかんないですが、とりあえずやってみます!(※ というかMQTTなんかよさ気ですね。ちょっと調べてみよ)

References

socket.ioの公式クライアントについて

Socket.ioとは何か?リアルタイムWebアプリケーションを実現する技術をまとめてみた

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3