首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socketstream(0.3)服务器端代码混乱

Socketstream(0.3)服务器端代码混乱
EN

Stack Overflow用户
提问于 2012-03-26 17:31:42
回答 2查看 715关注 0票数 0

我正在尝试准确地理解我应该在哪里/如何实现独立于客户端rpc调用运行的node.js/socketstream服务器端代码。作为一个简单的例子,我尝试在服务器端使用类似这样的东西将常规时钟更新推送到已连接的客户端:

代码语言:javascript
复制
var pushTime = function() {
    d = new Date();
    ss.publish.all('newServerTime', d);
    return;
};

setInterval(pushTime, 1000);

并将客户端设置为订阅发布事件排序,如下所示:

代码语言:javascript
复制
ss.event.on('newServerTime', function(time) {
    return $('#serverTime').val(time);
});

问题:我应该在哪里放置/执行服务器端的pushTime函数?文档建议使用/server/rpc树,因此我将其放在/server/rpc/demo.js中,但这会产生以下错误:

ReferenceError:未定义ss

请注意,我不会将代码放在export.actions块中;我相信这只适用于客户端rpc调用。

我尝试在文件的顶部设置ss:

代码语言:javascript
复制
ss = require('socketstream');

但这肯定是错的--现在'publish.all‘方法不存在了。

我试着把代码放在app.js的底部,就在ss.start调用之后。这再次说明publish.all方法并不存在(也许直到附加了客户端之后才存在?)。我迷路了。感谢任何帮助;希望这一点是明确的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-26 20:49:25

是的,你可以把这些代码放在你的操作中,没有什么能阻止你,但最好是把它放在你的'app.js‘文件中。

要从app.js (发送到/server/rpc操作文件)访问内部API,请使用ss.api

因此,您需要调用:

代码语言:javascript
复制
ss.api.publish.all()

从你的'app.js‘文件中。

抱歉,这之前没有被记录下来。我将很快更新文档。

欧文

票数 1
EN

Stack Overflow用户

发布于 2012-03-26 20:27:07

不知道它是否符合编码标准,但这可能是可行的:

/server/rpc/demo.js

代码语言:javascript
复制
exports.actions = function(req, res, ss) {
    setTimeout(function () {
        ss.publish.all("newServerTime", new Date());
    }, 1000);
}

在阅读文档时,我认为您可以将操作滥用到几乎所有事情上,而不仅仅是RPC响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9869694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档