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);
});