neu.Nodeを触ってみました
iOS上でNode.jsを動かすというneu.Node。1/16にneu.Node リリースのお知らせで公開されたneu.Nodeを試してみました。最初のとっかかりとして、どこから始めればいいのかまとめてみます。
ソースコード
https://github.com/snakajima/neunode
何はともあれ、必要なのはXcodeですので、AppStoreでDLしておいてください。
準備ができたらGitHubからDLしてきます。
$ git clone https://github.com/snakajima/neunode.git
デモを動かす
neunode.xcodeprojをXcodeで開いてみます。サンプルが入っていますので、とりあえず起動してみましょう。
ウィンドウ左上でデバイスを指定して「Run」ボタンをクリックします。
ビルドが成功して、シミュレータが起動するはずです。
最初に「Hello World」を選んでみます。すると、Xcodeの「All Output」部分に以下のようなログが表示されます。
ブラウザでURLを入れてアクセスしてみましょう。もちろん、環境によってIPアドレス等は変わります。
Hello Worldが表示されました。素晴らしい。
では今度は「Echo Server」を起動してみます。同様に「All Output」に以下のようにログが出力されます。
2013-01-19 10:30:52.067 neunode[64309:11303] Server is running at { port: 1337, family: 'IPv4', address: '192.168.0.4' } 2013-01-19 10:30:52.069 neunode[64309:11303] Use "telnet 192.168.0.4 1337" to see the action
telnetしてみます。
$ telnet 192.168.0.4 1337 Trying 192.168.0.4... Connected to 192.168.0.4. Escape character is '^]'. Hello Hello World World ^] telnet> quit Connection closed.
入力した文字がサーバから返ってきます。
ファイル構成
デモや諸々はどこに書かれているのか調べてみると、以下のような構成になっているようです。
neunode/apps/*.js
これらがデモの本体、それからroot.jsがデモ選択画面のようです。
neunode/apps/*.html
ロードするライブラリをscript要素で記述するようです。
Frameworks/core/*.js
これらがNode.jsの各ライブラリのようです。
ライブラリを見てみると、Node.jsに含まれるCryptライブラリなどが無いように見えます。
まとめ・疑問点など
Node.jsがiOS上で動くというのは面白いですね。JavaScriptでアプリを作ると言えばTitanium MobileやPhoneGapなどがありますが、WebSocketが使えるという事でリアルタイムかつサーバ不要のコミュニケーションアプリが作れるとあって、新しいカタチのアプリ・使い方ができそうな予感です。
まだ触ったばかりで良く分からないのですが、
- fs.readFile()などのファイル操作系は、サンドボックス内のファイルにアクセスできるのか
- NDB/KVSなどはどうしたら良いのか/SQLiteは使えるのか(WebViewで使えるだろうし・・)
- npmは使えるのか
- デバイスのカメラやGPSなどにアクセスはできるのか
といったところが疑問点かなと。
実際に触ってみれば分かる事でしょうけど。
という事で参考になれば。
[追記 2013/01/22]
その後調べて分かった事を書きました。