вебсокеты и mongodb
подскажите, пожалуйста - имеется сервер, с запросами и поддержкой вебсокета. Ситуация следущая - при отправке сообщения через вебсокет в монгодб создается одна запись, ответ приходит два раза, я пытался как то подебажить, но newMessage почему то выводится 3 раза, а modifiedMessage - 1 раз, я если что веб учу и еще не силен в серверной части, это единственный контроллер и нигде больше не дублируется
const handleWebSocketConnection = (ws) => {
const messageChangeStream = mongoose.connection.collection('messages').watch()
messageChangeStream.on('change', (change) => {
if (change.operationType === 'insert') {
const newMessage = change.fullDocument
console.log('newMessage', newMessage) //данное сообщение выводится 3 раза
ws.send(
JSON.stringify({
processing: 'add',
data: newMessage,
})
)
}
})
ws.on('message', async (clientMessage) => {
const parsedMessage = JSON.parse(clientMessage)
switch (parsedMessage.processing) {
case 'add':
await messageService.addMessage(parsedMessage)
break
}
})
}
class MessageService {
async addMessage(message) {
const modifiedMessage = {
...message.data,
delivered: true,
}
console.log('modifiedMessage', modifiedMessage) //данное сообщение выводится 1 раз
await MessageModel.create({ ...modifiedMessage })
}
}