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 件のコメント:
コメントを投稿