我试图准确了解我应该在哪里/如何实现独立于客户端 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”方法不存在。
我尝试将代码放在 app.js 的底部,就在 ss.start 调用之后。再次说明 publish.all 方法不存在(可能直到连接了客户端?)。我迷路了。任何帮助表示赞赏;希望这很清楚。