【问题标题】:How to listen for messages from sockets in Sails.js?如何在 Sails.js 中侦听来自套接字的消息?
【发布时间】:2015-04-08 20:06:56
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    与 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');
    

    第一个参数是请求套接字,第二个是你想要订阅上下文的用户列表(在这个例子中,只有一个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 动词。

    ...差不多就是这样。

    【讨论】:

    • 您只能在控制器的操作中执行此操作。
    猜你喜欢
    • 1970-01-01
    • 2017-07-16
    • 2011-12-10
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多