Хранение данных о комнате на Socket.io - PullRequest
0 голосов
/ 01 мая 2020

Я создаю веб-приложение с Socket.io и хочу сохранить данные для каждой комнаты. Данные включают в себя некоторые данные о пользователях, а также о самой комнате, et c., Все в объекте JavaScript.

Теперь мой вопрос, есть ли у меня просто массив let rooms = [] на моем server.js, которым я манипулирую и использую для хранения данных, будет ли это нормально?

Если я развернусь в рабочей среде и у меня есть пользователи на сайте, это будет нормально и сработает, как и ожидалось? Я не уверен, если мне нужно реализовать БД здесь. Мысли?

1 Ответ

0 голосов
/ 02 мая 2020

Это действительно зависит от того, что вы хотите получить от этого. Использование локального состояния (то есть то, что вы делаете с let rooms = []) будет работать нормально (я сделал это и добился успеха с этим).

Недостатком является то, что ваше состояние будет в памяти одного сервера. Поэтому, если этот сервер выйдет из строя или вы перезапустите его, вы потеряете все это состояние (все ваши комнаты). Кроме того, если вам нужно масштабировать за пределы одного сервера, это не будет работать, потому что у каждого сервера будет свой список данных комнаты. Ваши клиенты будут по-разному смотреть на вещи в зависимости от того, к какому серверу они подключаются.

Причина, по которой этот подход работал для меня ранее, заключалась в том, что мои данные были очень быстрыми, и я мог смириться с их потерей. У меня также не было потребностей в масштабировании.

В итоге, если ваша ситуация такова:

  1. , у вас не будет больше пользователей, чем вы можете обработать на одном экземпляре сервера в любой в данное время
  2. все в порядке, если ваши данные будут сброшены

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

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