Реализовать сервер вебсокетов, с возможным подключением 10+ тысяч активных соединений

Бюджет 167$ / 10000
руб
в месяц
Создан: 3 года назад
На модерации
Описание
Бюджет по задаче предлагайте в комментариях к задаче, так же Вы можете задать интересующие Вас вопросы –  мы готовы к обсуждению!

Общая часть:
Данный функционал требуется для поддержания двухсторонней связи с клиентами (курьерами) / их мобильными приложениями. Хотим чтобы наши исполнители получали актуальную информацию о заказах, в том числе и пуш-уведомления.
------------------------------------
Задачи, которые предстоит решить:
1. Предложить решение, описав структуру системы;
2. Необходимо полностью развернуть и подготовить данный сервис на выделенном сервере, который мы предоставим, с 
Готовый вебсокет сервер нужно будет прогнать через какой-нибудь бенчмарк, чтобы понять насколько он производительный и с какими нагрузками справляется.

Необходимо реализовать сервер вебсокетов, с возможным коннектом на 10+ тысяч активных соединений
Основные требования:
- отправка сообщений клиентам
- мониторинг соединений, автоматическое удаление мертвых
- формирование списка активных клиентов
- реализовать возможность обмена данными с бэкендом
- большим плюсом будет ведение логов для последующего анализа работы, нештатных ситуаций, ошибок и т.д.

Все клиенты будут подключаться через токен, переданный GET параметром, например ws://127.0.0.1:8000?token=randomToken
Под одним токеном может быть несколько соединений (например из разных устройств), нужно их все соотносить к одному токену.
Отправка сообщений клиентам будет происходить через токен. Сообщение должны будут получить все клиенты, соотнесенные к этому токену.

Общение с бэкендом самое удобное будет реализовать через запущенный с вебсокет-сервером TCP сервер по отдельному порту. Формат данных для обмена самым удобным будет JSON.
Например, для получения статистики по текущим клиентам вебсокет-сервера, с нашего бекэнда будет запрос вида

{
  "action": "getStats"
}

ответ приблизительно такой:

{
  "clients": [
    {
      "token": "randomToken",
      "connectedAt": "2021-04-16 15:45:45"
    },
    {
      "token": "superRandomToken",
      "connectedAt": "2021-04-16 15:12:55"
    }
  ]
}

------------------------------------

Отправка сообщений клиентам также будет инициироваться бэкендом. Пример данных, передаваемых с бекэнда

{
  "action": "sendMessages",
  "messages": [
    {
      "token": "randomToken",
      "message": "{"action":"push","data":{"type":1,"is_news": 1,"title":"Title expample","body":"Body text example","id":123456}}"
    },
    {
      "token": "superRandomToken",
      "message": "{"action":"push","data":{"type":1,"is_news": 1,"title":"Title expample","body":"Body text example","id":123456}}"
    }
  ]
}

соответственно, клиенты с указанными токенами должны будут получить сообщения.
Категория
Источник: fl.ru

Похожие проекты

safe$22
9 0
требуется готовую онлайн анкету на django по приему на работу перенести в whatsapp, telegram и viber. Нужно чтобы кандидат мог с удобством заполнять анкету с телефона, а все заполненные им данные по всем позициям автоматически загружались в нашу базу данных. В нашей базе будет создаваться резюме кандидата......
safe 
28 0
В наличии массив кадастровых номеров (КН), необходимо путем запроса на ПКК определить примерные географические координаты каждого объекта из массива КН (ОКС, ЗУ), вывести в результирующий файл эти ко-ты и ряд сопутствующих данных по этому КН....
1 год назад
safe 
44 1
Необходимо разработать бек и фронт мини-сервиса таким образом, чтоб его можно было развернуть внутри другого проекта....
safe$1111
23 0
Стоит на Бизнесе для своих нужд на простеньком базовом шаблоне, складываю туда контент потихоньку. Нужно начинать приводить в соответствие что бы публика сразу не убегала, а как то цеплялась, да и продвигать не торопясь. Шаблон где порвался от вставки баннеров подправить, для мобилок может сверстать.......
safe$22
55 0
Парсер для сайта stockx. com на питоне (selenium/pyppeteer). Необходим следующий функционал: 1. На главной странице с поиском по ключевым словам найти первый результат из поиска (ссылку на страницу товара) ....
1 год назад
safe$44
49 0
Трипланарная транспортная задача (отправители - транспорт - получатели) генерация исходных данных трехэтапное решение 1....
safe$1111
48 0
Требуется написать парсер маркетплейса, у которого есть только мобильное приложение (IOS, Android). Есть исходный код Android приложения (Java + Kotlin), реверснутый через JADX. Необходимо парсить данные о товарах, полученные по артикулу. За подробностями тг: @markermann)....
1 год назад
 
38 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
36 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
37 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
31 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
40 1
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
$22
59 1
В Геткурсе нужно сделать интеграцию со Сбербанком для оформления рассрочки/кредита. Основная задача – передача суммы и номера заказа при переходе для оформления рассрочки и возврат сведений при удачном оформлении. Эквайринг от Сбербанка к Геткурсу подключён, а готовой интеграции для рассрочки нет. Если......
1 год назад
 
96 0
Нужно сделать бот перехватчик заказов по фильтру такси Максим!...
1 год назад
$33
75 1
Как можно загрузить готовое фото из галереи, если приложение просит загрузить фото и при этом открывает камеру телефона? Нужно вместо использования реальной камеры смоделировать вход камеры и при этом загрузить фото из галереи....
1 год назад
 
117 3
Очень простой криптообменник в виде веб-сайта. Без смарт-контрактов и т. Все платежи вручную....
Смотреть все