我在生产模式下遇到了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;
}
});
当我在开发模式下运行时,我会收到update
和addedTo
条消息。我还会收到create
和update
条消息。但是,当我在生产模式下运行时。我只收到用户的create
条消息,没有update
或addedTo
条消息。
我正在运行Sails v.0.10.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
条消息,但至少可以解释为什么我不会收到update
或addedTo
条消息。
答案 1 :(得分:0)
看起来Sails pubsub实现中存在一个错误,导致在publishCreate
次调用时发送firehose消息。它现在正在修补。正如您在警告中看到的那样(和stated in the documentation一样,firehose严格用作开发工具。感谢您的报告!