kgrss's blog

プログラムを中心にいろいろなことを記事にしていきます!

UnityでとりあえずWebSocketしてみた

どもども、こがらしです。

仕事が一段落ついたのをいいことに、これからのためになるもの(自分の興味のあること)をやってます。

それが先日のUnityのAndroid連携ツールだったり、今回の記事の内容だったりするわけです。
それではまぁ本題ですねー。

前回はUnity上からAndroidの操作を楽にするためのツールでしたが、
今回はAndroid/iOS上でのデバッグの役にたてばなー、といった趣旨のツールです(?

厳密にはツールじゃないですね。

先にサンプルのURLでも。
http://kogarasi.com/unity_weblog

普段みんながDebug.Logとかをしていると思いますが、
これって結局実機をPCにつながないと見れないわけですが、、
特にAndroidなんですが非常にログの吐き出しが激しいです笑
Arrows Zとか鬼のようなログなんですが、
検証をしてて挙動が怪しい!ってなってからlogcatで見ようとしても、
ログが流れて見れない!なんてことが結構あったり・・・
プログラマーとかは見ながらとかしたりできますが、みんながみんなできないんですよねー。

なら、サーバーに投げちゃえ!
ということで作ってみました。

実装方法に関してはかなり個人のやりたいことを押し出して作ってます笑
クライアント/サーバー(/ビューワ)間の通信にはWebSocketを利用してます。
実際結構便利な機能の割に実装が簡単なのでみんながんがん使ったらいいと思います。
次にサーバー側ですが、一時的なデータのキャッシュ場所としてredisを一応おいてあります。
一応っていうのは、現状のサンプルではデータの保存しかしてないからですね。
のちのちここからバックログを拾えるようにしていかないとです(じゃないと意味がないので)

ちなみに実装の大部分をgithub上で公開されているライブラリたちを利用しています。
直接的に利用しているのは下記のです。

Ratchet - Websocketサーバ(PHP)
Predis - Redisクライアント(PHP)
websocket-sharp - Websocketクライアント(C#)

Ratchetとかは内部的にはSymphonyとかが含まれてて、環境準備をすると結構大きい部類に入るのかなーといった感じです。
どのライブラリも実にシンプルで使い勝手がいいので是非ともといった感じです!

特に、Ratchetは単純にwebsocketサーバのためのライブラリではなくて色々なサーバとして拡張が可能なので使いこなせるとパフォーマンスが高いと思いますよ!

最後にですが、一応今回のwebsocketによるロギングのサンプルはもうちょっと整えたらgithubにでもあげますー。

あっ、そういえばwebsocket-sharpをAndroid用にビルドしようとしたら.Net2.0 subsetじゃビルドが通らなかったです泣
詳しい方フォロー等いただけると助かりますー

それでは。