我正在尝试订阅nodejs应用程序来模拟帆中的事件。这是我的代码:
var socketIOClient = require('socket.io-client'),
sailsIOClient = require('sails.io.js');
var io = sailsIOClient(socketIOClient);
io.sails.url = 'http://localhost:1337';
io.socket.on("agent", function(event) {
console.log(event);
})
io.socket.get("/agent", function(resData, jwres) {})
当客户端(nodejs)连接时,这是指向sails服务器上所有输出的链接:
https://gist.github.com/CiscoKidxx/e5af93ebcc24702ba4f8
我的理解是,当我创建一个新的代理时,它应该触发一个列出更改的console.log(事件)。这不会发生。在脚本启动时,我确实得到了“现在连接到风帆”。有什么想法吗?
以下是我在UserController中创建新代理的呼吁:
Agent.create({
syncToken: token,
owner: user.id
}).exec(function (err, newAgent) {
Agent.publishUpdate(newAgent.id, {syncToken: newAgent.syncToken});
答案 0 :(得分:6)
上面的服务器端代码段不会在回调中显示对 Agent.publishCreate 的调用,而是显示 publishUpdate 。
据我所知,publishCreate仅在使用蓝图时自动触发 - 但不适用于上面的Agent.create之类的程序化调用。
因此将其从publishUpdate更改为publishCreate可能会在您的上下文中修复它。