Мтеки:

stopline

Мессенджер, страница клуба, фотки

Закончил мессенджер  на проекте автоклубов. Добавил поддержку групп на будущее. Коммуникация пользователь-пользователь и пользователь-группа готовы. Позже добавлю шифрование. Сейчас это будет излишним. 

Начал страницу автоклуба. Пока дизайнера похитили инопланетяне, справляюсь собственной фантазией. Сделал управление обложкой, Добавил фотоальбомы. 

Главная страница клуба.

Закончил фотоальбомы. Это общий компонент для клубов, и прочих объектов. Загрузку фоток сделал на Amazon S3. Стоит копейки, гибкое кэширование, скорость отдачи впечатляет. Каждая фотка обрабатывается 4 раза: квадрат, маленький размер, средний и большой.

Фотоальбомы (клуба)

Активный альбом.

 

stop ___

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

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

А поскольку половину моего времени занимает работа над NDA-проектом, а другую — разработка собственного сервиса, я буду делиться своими собственными открытыми наработками.

На данный момент я использовал:

  • React-Redux (Frontend)
  • PHP с самописным модулем кэширования (на бэкенде)
  • Node (сервер для сокетов)
  • БД (MySQL) — в будущем переключусь на PostreSQL если будет проседать.
  • Go Lang — Скрипты для парсинга данных с внешних источников.

Сейчас мессенджер умеет диалоги юзер-юзер, юзер-группа.

Важно понимать что это технический дизайн, настоящий дизайн еще не подъехал.

Так-же готова регистрация и авторизация. 

Т.к мой сервис предполагает обязательное взаимодействие с телефонными номерами пользователей, я решил определить телефонный номер в качестве авторизационной информации при регистрации. Пользователю высылается СМС с подтверждением кода, после чего происходит регистрация со сверкой кода. Полтора года не пользовался смс-шлюзом. Оказалось что правила отправки СМС ужесточились. Выручает мое ООО.

Мессенджер в стадии альфы обошелся мне в 1k+  строк когда и два дня выходных. А еще я прикупил бейсболку, что бы прохожие не видели мои красные глаза от лютого оверворка. 🙂

Техническая спецификация.

Общение socket-сервера с базой данных происходит по средствам http запросов в API. Сам сервер сокетов к базе не подключается.

  • При подключении к socket-серверу передается токен, который был сгенерирован для пользователя при успешной авторизации на сервисе.
  • На socket-сервере присходит handshake по токену. А именно — сверяется присланный токен с доступными открытыми сессиями в системе. Если все ок, сеанс на socket-сервере попадает в массив socket-сессий данного юзера. Сеансов у юзера может быть множество — вкладки в браузере, приложение в смартфоне и т.д.
  • Если имеются группы, то клиент подписывается на групповые каналы (комнаты).
  • Всем клиентам, относящимся к авторизованному юзеру отсылается сокет-оповещение, о том что их друг появился в онлайне, или на оборот.

Далее сеанс будет использован для живых данных: «Вася набирает сообщение», «Джон только что посетил ваш профиль», и т.п. Он же будет подниматься с мобильного приложения в фоне.