クライアントのrpc呼び出しとは無関係に実行されるnode.js/socketstreamサーバー側コードをどこに/どのように実装する必要があるかを正確に理解しようとしています。簡単な例として、サーバー側で次のようなものを使用して、接続されているクライアントに定期的な時計の更新をプッシュしようとしています:
var pushTime = function() {
d = new Date();
ss.publish.all('newServerTime', d);
return;
};
setInterval(pushTime, 1000);
そして、その発行イベントをサブスクライブするようにクライアントを設定すると、次のようになります。
ss.event.on('newServerTime', function(time) {
return $('#serverTime').val(time);
});
問題: サーバー側の pushTime 関数をどこに配置/実行しますか? ドキュメントは /server/rpc ツリーを提案しているので、/server/rpc/demo.js に配置しましたが、次のエラーが発生します。
ReferenceError: ss が定義されていません
コードを export.actions ブロックに入れているわけではないことに注意してください。これはクライアント rpc 呼び出し専用だと思います。
ファイルの先頭に ss を設定してみました:
ss = require('socketstream');
しかし、それは間違いです。'publish.all' メソッドは存在しません。
ss.start 呼び出しの直後、app.js の一番下にコードを入れてみました。これもまた、publish.all メソッドが存在しないことを示しています (クライアントが接続されるまで存在しないのでしょうか?)。道に迷いました。助けていただければ幸いです。これが明確だったことを願っています。