Javascript SailsJS,SocketIO,没有收到消息
我有一个简单的登录脚本。我在SessionController中创建了一个名为create的方法来处理登录。我执行所有需要的验证,然后将用户设置为活动并保存它们。我还使用Javascript SailsJS,SocketIO,没有收到消息,javascript,node.js,socket.io,sails.js,Javascript,Node.js,Socket.io,Sails.js,我有一个简单的登录脚本。我在SessionController中创建了一个名为create的方法来处理登录。我执行所有需要的验证,然后将用户设置为活动并保存它们。我还使用User.publishUpdate()将消息发送回客户端 问题是我根本没有收到任何消息。加载页面时,我调用User.subscribe(req.socket,users)适用于所有用户,因此他们都已订阅。不太清楚为什么没有发送这些消息 我使用的是sails 0.10.0 这是在页面加载时调用的订阅方法: User.find({
User.publishUpdate()
将消息发送回客户端
问题是我根本没有收到任何消息。加载页面时,我调用User.subscribe(req.socket,users)
适用于所有用户,因此他们都已订阅。不太清楚为什么没有发送这些消息
我使用的是sails 0.10.0
这是在页面加载时调用的订阅方法:
User.find({}).exec(function (error, users) {
if (error) {
res.json({
error: error
});
}
// Subscribe to the model class
User.subscribe(req.socket);
// subscribe to the model instance
User.subscribe(req.socket, users);
res.send(200);
});
以及为登录创建方法(删除了与此问题无关的代码):
我通过套接字将请求发送到subscribe和login方法
socket.get('/user/subscribe')代码>
socket.get('/session/create',{//stuff},callback)
PubSub在Sails v0.10中已经发生了很大的变化,看起来您正在使用一些v0.9.x语义。你可以在《新杂志》和《新杂志》中读到关于它的所有内容,但就影响你的因素而言,最主要的是:
不再使用“消息”事件发布消息。而是使用模型的标识作为事件名称发布消息。因此,将您的侦听器更改为:
socket.on('user', callback)
你会听到一些东西
与您相关的另一件事是“ModelClassRooom”已被弃用,正如使用带有一个参数的.subscribe()
对其进行订阅一样。相反,使用User.watch(req)
获取有关新创建用户的通知
更新以及.watch()
方法,现在在sails.config.blueprints
中有一个autoWatch
选项(在config/blueprints.js
文件中设置),如果true
,将恢复到v0.9.x行为:任何时候套接字订阅模型实例,它还将开始“监视”模型类中的“创建”事件。您可以发布用于侦听事件的前端代码吗?只需使用socket.on('message',callback)代码>事件位于app.js
文件中我爱你!我已经阅读了迁移文档,但找不到任何关于消息事件更改的内容。你有那个特定部分的链接吗?可能还有更多的东西要读。ThanksI在我的回答中添加了到v0.10迁移指南的链接;这是第一部分。您可能正在阅读网站上的迁移指南(该网站仍将迁移到v0.9.x)@ScottGress链接已失效。0.10迁移指南现在在这里(但可能会再次移动):实际上,文档现在都是实时的,因此它们应该在那里停留一段时间。迁移指南是
socket.on('user', callback)