Делаю рандомный чат, где пользователь общается со случайным собеседником. Так вот в принципе все готово, только я не уверен правильно ли делаю...
Есть массив, там хранятся комнаты, и там всего одна комната либо ничего нет. И так собственно как все это работает:
Пользователь нажимает кнопку "Найти". Сервер проверяет массив:
-Если массив пустой, то создает новую комнату и добавляет в массив идентификатор комнаты. Выводим у пользователя сообщение "Wait...".
-Если в массиве уже есть элемент, то подключаемся к комнате, удаляем из массива эту комнату. Начинается общение.
Правильно ли я делаю? Если нет, то подскажите свой вариант.
Есть массив, там хранятся комнаты, и там всего одна комната либо ничего нет.
Тогда зачем брать массив? Если там только один элемент. Пусть будет один объект, который или равен null, или не равен null.
А вообще, надо смотреть детали задачи и архитектуру приложения (сервера) - если на сервер может быть большая нагрузка, то лучше использовать какую-то иную структуру данных. Потокобезопасную очередь, например.
Ну я имел ввиду что там будет какая то переменная с идентификатором комнаты.
"Потокобезопасная очередь" Могли бы подсказать в какую сторону копать и вообще что это такое? Гугл что то не хочет рассказывать )))
Вообще-то, я не уверен, что очередь это идеальный вариант. Но то, что структура должна быть потокобезопасной - почти наверняка.
.NET - msdn.microsoft.com/ru-ru/library/dd997305%28v=vs.1...
Java - habrahabr.ru/company/luxoft/blog/157273
Также Гугл мне выдавал много этих очередей на плюсах (если потребуются)
К сожалению, чего-то классического-теоретического (не привязанного к языку, чистых алгоритмов на псевдо-коде) сам не нашел (но я плохо искал).