gist

2012年5月15日火曜日

[Node.js] dnodeで簡単に非同期通信してみた

dnodeは、ソケット通信を利用して、クライアント/サーバ間で簡単に関数を実行できるNode.jsらしいパッケージです。

$ npm install dnode

サーバ側はこんな感じです。

server.coffee

dnode = require 'dnode'

server = dnode {
 hoge: (str, cb)->
  cb str + ' World!'
}
server.listen(8080)

dnodeメソッドで関数を指定し、listenでサーバを起動します。ここではhogeという関数を指定しています。

クライアント側はこんな感じで。

client.coffee

dnode = require 'dnode'

dnode.connect 8080, (remote)->
 remote.hoge 'Hello', (result)->
  console.log 'result=' + result

connect関数でポートを指定してサーバに接続。引数remoteで、サーバ側で指定した関数hogeを実行しています。第一引数に「Hello」を与えると、サーバ側で「World」が追加されて、resultに返却されます。

サーバーを起動してから、別ターミナルでクライアントを実行します。

サーバ側を起動

$ coffee server.coffee

クライアントを起動

$ coffee client.coffee 
result=Hello World!

socket.ioで実装することも可能ですが、dnodeを使うと、非常に簡単に通信が可能になります。

ブラウザ側にも対応しています。サンプルも豊富ですのでぜひお試しあれ。

それにしても、このキャラはなに?有名なの?

0 件のコメント: