Модификация существ. коннектора из HTTP POST в WebSocket на GoLang

15 000 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
22 июля 2018, 12:07 • 5 откликов • 49 просмотров
Имеются задачи, профилирующие направление backend-разработка на Go Lang: модификация и развитие интеграционного сервиса между сервером телефонии и пользовательскими приложениями.
Работа удаленная. Однако, предпочтение будет отдано кандидату, с возможностью обсуждений задач при личной встрече. Задача: Разработка интеграционного сервиса на Go, суть которого - получать события по TCP сокету с платформы телефонии (протокол AMI) и некоторые из них отправлять в WebSocket, сервером которого сам этот сервис будет являться. К вебсокету будут подключаться пользовательские приложения. Эти приложения будут слать команды в сокет, сервис должен их принимать и, в зависимости от полученной команды, посылать команду на сервер телефонии (тот же TCP сокет, протокол AMI) Т.е. сервис:
  • одним плечом должен подключаться к серверу телефонии,
  • другим плечом предоставлять сервер для websocket подключений (хаб - сообщения для всех пользователей);
  • принимать подключения по websocket-у от пользовательских приложений
  • посылать в websocket полученные события от сервера телефонии по TCP (AMI) (минимум преобразований: из многострочного текста в JSON)
  • принимать по websocket от пользовательских приложений запросы (команды)
  • посылать на сервер телефонии в TCP (AMI) команды, подставляю туда значения из запроса пользователя
За основу к разработке предоставим имеющийся сервис интеграции (доступ к репозиторию с исходным кодом), который на текущий момент умеет:
  • одним плечом подключаться к серверу телефонии (TCP AMI)
  • посылать методом HTTP POST полученные события от сервера телефонии по TCP (AMI) (есть преобразования: из многострочного текста в JSON)
  • принимать запросы по HTTP GET от пользователей
  • посылать на сервер телефонии в TCP (AMI) команды, подставляю туда значения из запроса пользователя
Авторизация на вебсокете не требуется. Подписка на вебсокете не требуется. Однако нужно заложить возможность добавления этого функционала в дальнейшем. Для работы будет предоставлено:
  • тестовая среда: сервер телефонии к которому можно подключиться и читать/посылать события/команды
  • список событий от сервера телефонии, которые нужно будет отправлять подключенным клиентам (в соответствии с имеющимся сервисом, который работает на http post)
  • требования к формату сообщений, отправляемых по websocket-у подключенным клиентам
  • требования к формату команд, получаемых от клиентов по websocket-у
  • доступ к репозиторию с имеющимся сервисом интеграции
  • "обзорную экскурсию" по коду (хотя по факту его не много) имеющегося сервиса интеграции (подробно знаем, как работает и что за что отвечает)
Для решения задачи необходимы следующие знания:
• Golang
• Git
• HTTP, REST, WebSocket

p.s. стоимость варьируется от объема задач