Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SailsJS,SocketIO,没有收到消息_Javascript_Node.js_Socket.io_Sails.js - Fatal编程技术网

Javascript SailsJS,SocketIO,没有收到消息

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({

我有一个简单的登录脚本。我在SessionController中创建了一个名为create的方法来处理登录。我执行所有需要的验证,然后将用户设置为活动并保存它们。我还使用
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)