sails.io.js - nodejs - 资源丰富的 PubSub 未接收模型事件
Posted
技术标签:
【中文标题】sails.io.js - nodejs - 资源丰富的 PubSub 未接收模型事件【英文标题】:sails.io.js - nodejs - Resourceful PubSub not receiving model events 【发布时间】:2016-02-28 20:24:07 【问题描述】:我正在尝试订阅一个 nodejs 应用程序来为sails 中的事件建模。这是我的代码:
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(event)。这没有发生。在脚本启动时,我确实得到了“现在连接到风帆”。有什么想法吗?
这是我在 UserController 中创建新代理的调用:
Agent.create(
syncToken: token,
owner: user.id
).exec(function (err, newAgent)
Agent.publishUpdate(newAgent.id, syncToken: newAgent.syncToken);
【问题讨论】:
您如何对Agent
模型进行更改?如果您直接对数据库进行更改,则需要使用.publishUpdate()
。见sailsjs.org/documentation/reference/web-sockets/…
每次用户注册时我都会创建一个新代理,并通过 UserController.js 将代理与新用户相关联我已在我的 OP 中包含了其中的一些代码。
【参考方案1】:
上面的服务器端代码 sn-p 没有在回调中显示对 Agent.publishCreate 的调用,而是一个 publishUpdate。
据我了解,仅在使用蓝图时才会自动触发 publishCreate - 但不会像上面的 Agent.create 这样的编程调用。
因此,将其从 publishUpdate 更改为 publishCreate 可能会在您的上下文中修复它。
【讨论】:
以上是关于sails.io.js - nodejs - 资源丰富的 PubSub 未接收模型事件的主要内容,如果未能解决你的问题,请参考以下文章