【发布时间】:2015-04-08 20:06:56
【问题描述】:
所以我想收听从 Sails.js 应用程序中的套接字获取的消息。我怎样才能做到这一点?
在方法上有类似socket.io的东西吗?
【问题讨论】:
标签: node.js sockets socket.io sails.js
所以我想收听从 Sails.js 应用程序中的套接字获取的消息。我怎样才能做到这一点?
在方法上有类似socket.io的东西吗?
【问题讨论】:
标签: node.js sockets socket.io sails.js
与 socket.io on 方法完全一样。
看看这里: http://sailsjs.org/#!/documentation/reference/websockets/resourceful-pubsub
这里有一个小例子。
假设您正在使用Model.message 到broadcast your messages,并且正在使用Sails' Socket Client。
在本例中,我们将假设:
/messageStream
User
为了收听消息,您必须首先订阅上下文。那我们继续……
在您的控制器中订阅:
User.subscribe(req.socket, { id: req.user.id }, 'message');
第一个参数是请求套接字,第二个是你想要订阅上下文的用户列表(在这个例子中,只有一个user) 和 第三个 是您要订阅的上下文,在这种情况下它只是 message 上下文。
在您的客户端监听消息:
io.socket.get('/messageStream');
io.socket.on('user', function(obj) {
if(obj.verb === 'messaged') {
console.log(obj);
// Do something fun with the message object!
}
});
io.socket.get 中的参数是你的控制器的路由。
io.socket.on 中的第一个参数是您的模型的小写名称。
请注意,当您收到消息时,收到的对象带有 messaged 动词。
...差不多就是这样。
【讨论】: