【发布时间】:2014-04-27 23:13:09
【问题描述】:
我有一个简单的登录脚本。我在 SessionController 中创建了一个名为 create 的方法来处理登录。我做了所有需要的验证,然后将用户设置为活动并保存它们。我还使用User.publishUpdate() 将消息发送回客户端。
问题是我根本没有收到任何消息。加载页面后,我为所有用户调用User.subscribe(req.socket, users);,以便他们都订阅。不太确定为什么不发送消息。
我正在使用sails 0.10.0。
这是在页面加载时调用的 subscribe 方法:
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);
});
以及用于登录的 create 方法(已删除与此问题无关的代码):
user.active = true;
req.session.authenticated = true;
req.session.User = user;
user.save(function (error, user) {
if (error) {
res.send(error, 500);
}
User.publishUpdate(user.id, {
loggedIn: true,
id: user.id,
action: ' has logged in'
});
res.json(user, 200);
});
我通过套接字将请求发送到订阅和登录方法
socket.get('/user/subscribe');
socket.get('/session/create', {//stuff}, callback)
【问题讨论】:
-
你能贴出你用来监听事件的前端代码吗?
-
仅使用位于
app.js文件中的socket.on('message', callback);事件
标签: javascript node.js socket.io sails.js