Node JS & Socket.io Совет. Лучше ли размещать информацию в базе данных через маршрут или через сокет?

В настоящее время я создаю новое приложение, которое на базовом уровне позволяет пользователям добавлять задачу, которую необходимо выполнить, а затем позволяет другой группе пользователей взять задачу и выполнить ее.

Ранее я занимался созданием приложения для чата в реальном времени, написанного на NodeJS и Socket.io, и все сообщения были отправлены в базу данных через сокет-соединение.

В текущем приложении я делаю то же самое, но подумал, что может быть лучше вместо этого публиковать информацию в базу данных через маршрут, а затем отправлять событие сокета при успешном обновлении списка доступных задач.

Я просто искал совет, как бы вы, ребята, сделали это? Передать информацию в базу данных через маршрут или через сокет?

1 ответ

Решение

Если вы идете по пути, в котором все изложено, вы можете быть уверены, работает ли ваше обновление или нет. Сокет не гарантирует ни успеха, ни неудачи, по умолчанию.

Но вы могли бы запрограммировать это. Например,

клиент: отправить данные

socket.emit('update', data); // send data

сервер: получать данные и отправлять обратно обновления о том, была ли операция успешной или нет

socket.on('update', function(data){
    findOrUpdateOrWhateverAsync(function(err){
        if(!err) socket.emit('update', null); // send back a "null" on success
        else socket.emit('update', err.message); // or send back error message
    });
});

клиент: получать обновления при ошибке / успехе

socket.on('update', function(err){
    if(err) alert(err);
});
Другие вопросы по тегам