LoginSignup
28
26

More than 5 years have passed since last update.

Node.js + Socket.IOのサーバの基本構成と、Android版のSocket.IOクライアントのサンプル

Posted at

とりあえずコードはよ。って方はgithub

何が出来るの?

Androidアプリとブラウザでリアルタイム双方向通信のサンプルです。要はチャットアプリです。サーバは受信データをブロードキャストするようにしています。

 非常に簡単なサンプルですが、ブラウザクライアントとAndroidアプリの工夫次第で、色々な実験やプロトタイピングが出来ると思います

画面サンプル(自機の送ったものは表示されない)

ブラウザの画面
ブラウザの画面
Androidの画面
Androidの画面

実装

サーバ

ここを参考にして構築しました。 動作確認したバージョンは以下になります。

  • 環境はMac Mountain Lion
  • nvmとnpmを使用
  • Node.js : v0.6.6/v0.8.7
  • Socket.IO : v0.9.10
  • express 3.0.0rc3

Node.jsについてはv0.8系からは、Macの場合Xcodeがインストールされている必要があるようです。expressはそのままインストールすると最新版の3系がインストールされます。2系でインストールしたい場合は

$ npm install -g express@2

とするようです(ここを参照)。なお、express2とexpress3ではapp.jsの記述方法など変更されているので注意して下さい。

Android

Android側ですがここを参考にして作成しました。SDKはv16をターゲットとしていますが、android-support-v4ライブラリを使っていますので、そこそこの端末で動作すると思います。練習のためFragmentを使ってSocket.IOのロジック部分は、UI無しのFragmentに分けてありますがコードがやや複雑になってしまいました...もっとSocket.IOの理解が深まれば簡易的な実装にできると思いますが、とりあえず現状で公開しています。

このコードをベースに利用する場合

  • io.socketパッケージ以下をそのまま使えます(ライブラリ化してもOK)
  • libsのweberknecht.jarが必要です
  • JSONのパースにJSONICを使用していますが、ここは自由に...

まとめ

Node.js + Socket.IOを使ってプロトタイピングすると、ブラウザ、サーバ、モバイル、ハードと様々なものを双方向リアルタイム連携できるようになります。

28
26
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
28
26