如何在Sails.js中侦听来自套接字的消息?
所以我想听从我的Sails.js应用程序中的套接字获得的消息。 我怎样才能做到这一点?
有什么像socket.io方法?
有一些像socket.io方法。
看看这里: http : //sailsjs.org/#!/documentation/reference/websockets/resourceful-pubsub
这是一个小例子。
假设您使用Model.message
来广播您的消息 ,并使用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
动词。
…这就是它。