Общайтесь со случайными людьми в Интернете!
Бэкэнд:
Для своей серверной части я использовал очень простую настройку Node/Express.js. Он не включает в себя какие-либо контроллеры или модели, поскольку функциональность приложения была относительно простой, и я не хотел переусердствовать с настройкой.
Я использовал Socket.io для чата в реальном времени, прослушивая все, что исходит от localhost:3000
. Когда пользователи подключаются к сокету, они сначала сканируют комнаты с розетками в поисках других пользователей, ожидающих соединения. Если ни один другой пользователь не подключен и не ожидает, будет создана новая комната, и текущий пользователь будет ждать, пока к ней присоединится кто-то еще. Пользователи также могут покинуть свою текущую комнату и присоединиться или подождать, чтобы присоединиться к другой комнате с другим пользователем.
Внешний интерфейс:
Для моего интерфейса я использовал реализацию React/Redux. Redux на самом деле использовался только для хранения пользователя текущего сеанса.
Когда пользователи переходят на localhost:3000
им предлагается ввести имя пользователя. После входа они либо соединяются с другим пользователем, либо им предлагается дождаться, пока другой пользователь присоединится к чату. После присоединения они могут свободно общаться с другим пользователем в приватном чате. Они могут вводить такие команды, как /delay 1000 message
, которая ожидает введенное количество миллисекунд перед отправкой сообщения, или /hop
, которая позволяет им покинуть текущий чат и присоединиться к другому или дождаться, пока другой пользователь присоединится к ним.
Начать работу просто! Перейдите в каталог проекта и введите следующие команды:
$ cd src
$ npm install
$ npm start
Вы должны быть готовы к работе! Не стесняйтесь перейти на localhost:3000
и проверить это!