2013-08-07 2 views
0

Итак, я хочу разработать чат-систему на основе nodejs и socket.io, я создал прототип, и он работает, единственное, что застряло у меня в голове, - это сохранить сообщения чата в базе данных.Чат, используя nodejs + socket.io и mysql

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

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

Чат работает с той же идеей, что и facebook.

+0

Почему бы просто не кэшировать данные в памяти, а затем хранить их каждую минуту и ​​очищать кеш? – Gomino

+0

Ну, это будет в основном то же самое, вы будете делать тон вставок каждую минуту, идея, я думаю, заключается в распространении ее в разные периоды времени. – Uffo

ответ

2

Если вы не сохраняете сообщения в данный момент, как вы планируете их сохранять, когда захотите?

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

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

+0

Хороший вопрос прямо здесь, мое единственное беспокойство касается сервера, если это можно сделать, но, я думаю, вы говорите с точки зрения опыта, вы думаете, что facebook хранит их в БД сразу или на любых других крупных сайтах? Я не знаю, как они делают это на этих больших сайтах, поэтому я спрашиваю – Uffo

+0

. Я предполагаю, что Facebook действительно сохраняет сообщения мгновенно. Отправьте сообщение своему другу, быстро закройте браузер, очистите файлы cookie и кеш, войдите в систему, и вы увидите, что ваше сообщение все еще там. – Clarkey

+0

Я не думаю, что MySQL умрет на вас. Но если вам посчастливилось иметь так много вставок в секунду, то вы можете начать балансировать свои базы данных MySQL. – Clarkey

Смежные вопросы