如何在Sails.js中侦听来自套接字的消息?

时间:2015-04-08 20:06:57

标签: node.js sockets socket.io sails.js

所以我想听听我从Sails.js应用程序中的套接字获得的消息。我怎样才能做到这一点?

方法上有socket.io吗?

1 个答案:

答案 0 :(得分:3)

就像socket.io on方法一样。

请查看此处: http://sailsjs.org/#!/documentation/reference/websockets/resourceful-pubsub


这是一个小例子。

假设您正在使用Model.messagebroadcast your messages,并且正在使用Sails' Socket Client

在这个例子中,我们假设:

  • 您的控制器路线为:/messageStream
  • 您使用的模型是:User

要收听消息,您必须先订阅上下文。让我们继续......

订阅您的控制器:

User.subscribe(req.socket, { id: req.user.id }, 'message');

第一个参数是请求套接字,第二个参数是您要订阅上下文的用户列表(在此示例中,只有一个)用户)和第三个​​是您要订阅的上下文,在这种情况下只是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动词。

......这就是它。