0

Pub/Sub システムを使用して Redis サーバーにメッセージを公開しています。これらのメッセージをリッスンして処理するために、node.js で Socketstream 0.3 を使用しています。クライアント コード (app.js) では、ss.event.on を使用してこれらのメッセージにうまく対処できます。

ss.event.on "portux", (object) ->
  # Handle messages of the type Switch 3 true (to switch 3 on) or Switch 2 false
  if object.type is "Switch" 
  sw = object.location
  # the cmd is now in the quantity field
  cmd = object.quantity
  if object.value then cmd += 'On;' else cmd += 'Off;'
  send cmd

ただし、これらのメッセージの一部では、ブラウザーが Web サイトにアクセスしていない場合でもシステムを動作させたいと考えています。つまり、ルートの app.js (または app.coffee) または server/rpc のいずれかに配置して、ブラウザーが Web サイトを開いたかどうかに関係なく、メッセージが到着するたびに実行されるようにしたいと考えています。

これを実行しようとすると、ss.event.on (オブジェクトが定義されていません) でエラー メッセージが表示されます。ss.api.event.on も使用してみましたが、クライアント コードでしかメッセージを受信できないようです。これは本当ですか?私が望むものを達成できる別の方法はありますか?

ピーター

4

1 に答える 1

0

サーバー上にいる場合は、イベントがトリガーされた同じ場所から関数を直接呼び出すことができます。

イベントのセマンティック パラダイムにコミットしている場合は、イベント スタイルで (関数などの) ネーミングのテーマを設定できます。
Node の event-emmiter ライブラリを掘り下げて、そのようにカスタマイズすることもできます。

これは、プログラム編成のための厳密にイベント指向のパラダイムを順守して、このように時間を無駄にしたい場合に限られます。

最も簡単なことは、コメンターの Deif が述べたように、関数を直接呼び出すことです。同じ場所から、イベントをトリガーします。

于 2014-03-06T09:56:37.103 に答える