В настоящее время я работаю над системой чата узлов, которая использует MongoDB для базы данных. Эта система имеет API и взаимодействует с пользователями приложений через веб-сокеты. Я думал об использовании хуков сохранения сообщений mongoose для отправки сообщений пользователям, если сообщение было отправлено через API.
Упрощенный пример этого будет:
roomSchema.post('save', function(next){
socket.emit('message', this.message);
next();
});
Теперь яЯ думаю о scalling и как будет возможно выполнить эту ловушку на сервере, который фактически имеет пользователей в комнате, подключенной к нему (через websocket), если работает несколько серверов.
Подводя итог ...
- У меня есть два сервера, вызов API создает новое сообщение на первом
- У меня есть пользователи, подключенные ко второму серверу, на который я хочу отправить это сообщение
Как можно обойти эту проблему, зная, что перехваты выполняются только на сервере, который фактически записывает в базу данных?