在生产模式下,Sails v0.10.x不发送更新或添加的消息

时间:2014-08-10 16:25:29

标签: sails.js sails.io.js

我在生产模式下遇到了Sails WebSockets的问题。当我在开发模式下运行Sails时 - 即sails lift - 我收到了关于firehose的所有消息。但是,当我在生产模式下运行Sails时 - 即sails lift --prod - 我只收到创建消息。

例如,我的套接字侦听器代码如下所示:

io.socket.get('/firehose', function nowListeningToFirehose(message) {

    // Attach a listener which fires every time the server publishes
    // a message to the firehose, then dispatch messages to simple handlers
    io.socket.on('firehose', function newMessageFromSails(message) {
        console.log('Firehose message: ', message);

        switch (message.model) {

            // Handle messages related to Rooms
            case 'room':
                processRoomMessage(message);
                break;

            // Handle messages related to Person(s)
            case 'person':
                processPersonMessage(message);
                break;

            default:
                break;

        }
    });

当我在开发模式下运行时,我会收到updateaddedTo条消息。我还会收到createupdate条消息。但是,当我在生产模式下运行时。我只收到用户的create条消息,没有updateaddedTo条消息。

我正在运行Sails v.0.10.2。

2 个答案:

答案 0 :(得分:0)

行。根据Sails的以下日志消息,在生产模式下关闭firehose。

Warning: A client socket was just subscribed to the firehose, but the environment is set to `production`. Firehose messages are only delivered in the development environment.

它无法解释为什么我会收到create条消息,但至少可以解释为什么我不会收到updateaddedTo条消息。

答案 1 :(得分:0)

看起来Sails pubsub实现中存在一个错误,导致在publishCreate次调用时发送firehose消息。它现在正在修补。正如您在警告中看到的那样(和stated in the documentation一样,firehose严格用作开发工具。感谢您的报告!