[英]Socketstream(0.3) server-side code confusion
我试图确切地了解应该在哪里/如何实现独立于客户端rpc调用运行的node.js / socketstream服务器端代码。 作为一个简单的示例,我试图在服务器端使用类似以下的方法向连接的客户端推送常规时钟更新:
var pushTime = function() {
d = new Date();
ss.publish.all('newServerTime', d);
return;
};
setInterval(pushTime, 1000);
并设置客户端以订阅该发布事件sorta,如下所示:
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方法不存在(也许直到附加了一个客户端才可以?)。 我迷路了。 任何帮助表示赞赏; 希望这很清楚。
是的,您可以将代码放入您的操作中,没有什么可以阻止您,但是最好将其放入您的“ app.js”文件中。
要从app.js(发送到/ server / rpc操作文件的内部API)访问内部API,请使用ss.api
因此,您将需要致电:
ss.api.publish.all()
从您的“ app.js”文件中。
抱歉,以前没有记录。 我将尽快更新文档。
欧文
不知道它是否符合编码标准,但这可能有效:
/server/rpc/demo.js
exports.actions = function(req, res, ss) {
setTimeout(function () {
ss.publish.all("newServerTime", new Date());
}, 1000);
}
阅读文档时,我认为您几乎可以滥用所有操作,而不仅仅是RPC响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.