hook.ioは、ソケット通信を利用してデータ通信を可能にするパッケージです。イベント名をドメインで管理することができます。
$ npm install -g hook.io
uh.coffeeとnya.coffeeを用意します。
uh.coffeehookio = 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.coffeehookio = 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 件のコメント:
コメントを投稿