gist

2012年5月28日月曜日

hook.ioで「 (」・ω・)」うー!(/・ω・)/にゃー!」してみた




hook.ioは、ソケット通信を利用してデータ通信を可能にするパッケージです。イベント名をドメインで管理することができます。
$ npm install -g hook.io
 

uh.coffeeとnya.coffeeを用意します。

uh.coffee
hookio = require 'hook.io'

hookA = hookio.createHook {name: "a"}
hookA.on "*::uh", (data)->
 console.log data
 setTimeout ()->
  hookA.emit 'nya', '(/・ω・)/にゃー!'
 , 1000

hookA.start()

createHookメソッドでフックの名前を指定しています。hookA.on の第1引数にイベント名を指定します。これは::で区切ったドメイン風に指定できます。*::uh であれば、最後のイベント名が uh であれば補足して、第2引数に指定した関数を実行します。第2引数のメソッドの引数dataには、飛んできたdataが入ってきます。console.logでdataの内容を出力して、1秒したら nyaイベントを発火(emit)します。

続いてnya.coffee。

nya.coffee
hookio = require 'hook.io'

hookB = hookio.createHook {name: "b"}
hookB.on 'hook::ready', ()->
  hookB.emit 'uh', '(」・ω・)」うー!'

hookB.on '*::nya', (data)->
 console.log data
 setTimeout ()->
  hookB.emit 'uh', '(」・ω・)」うー!'
 , 1000

hookB.start();

hook::redayで1回 uhイベントを発火します。hook::readyは hookが用意できた時にhook.ioから発火されるイベントです。もし nyaイベントが飛んできたら データを出力して1秒後に uhイベントを発火します。

イベントをドメインでフィルタできるのがいいところ、かと。

実行結果



レッツ\(・ω・)/にゃー!

0 件のコメント: