0

本番モードで 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、部屋のメッセージが表示されます。create個人宛てのメッセージも受け取りupdateます。ただし、本番モードで実行すると。createユーザー、no、updateまたはメッセージのメッセージのみを取得しaddedToます。

Sails v.0.10.2 を実行しています。

4

2 に答える 2

0

Sails の pubsub 実装にバグがあり、publishCreate呼び出し時に firehose メッセージが送信されるようです。現在パッチ適用中です。警告で見たように (ドキュメントに記載されているように、firehose は開発ツールとして厳密に意図されています。レポートをありがとう!

于 2014-08-10T19:32:09.817 に答える
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

于 2014-08-10T16:41:33.710 に答える