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

Node.js 如何在Sails.js中侦听来自套接字的消息?,node.js,sockets,socket.io,sails.js,Node.js,Sockets,Socket.io,Sails.js,所以我想听听我从Sails.js应用程序的套接字中获得的消息。我怎样才能做到这一点 方法上有类似socket.io的东西吗?方法上有类似socket.io的东西 看看这里: 这里有一个小例子 假设您正在使用Model.messageto,并且正在使用 在本例中,我们假设: 您的控制器路由为:/messageStream 您使用的模型是:User 为了侦听消息,必须首先订阅上下文。所以让我们继续 在控制器中订阅: User.subscribe(req.socket, { id: req.us

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

方法上有类似socket.io的东西吗?

方法上有类似socket.io
的东西

看看这里:


这里有一个小例子

假设您正在使用
Model.message
to,并且正在使用

在本例中,我们假设:

  • 您的控制器路由为:
    /messageStream
  • 您使用的模型是:
    User
为了侦听消息,必须首先订阅上下文。所以让我们继续

在控制器中订阅:

User.subscribe(req.socket, { id: req.user.id }, '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!       
    }
});
第一个参数是请求套接字,第二个参数是您想要订阅上下文的用户列表(在本例中,只有一个用户),第三个参数是您想要订阅的上下文,在本例中,它只是
消息
上下文

监听客户端中的消息:

User.subscribe(req.socket, { id: req.user.id }, '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
动词


…差不多就是这样。

您只能通过控制器的一个操作来完成此操作。