##Websocket API Gateway

Биржа Bitmex предоставляет собственный API интерфейс (REST + Websocket), позволяющий подписываться на различные уведомления об изменениях цены котировок финансовых инструментов

Необходимо реализовать с помощью Gin + Gorilla websocket каркаса шлюз для подписки на сигналы тестового счета биржи Bitmex, при подключению к которому возможно получать оповещения об изменениях в таблице финансовых инструментов (котировках) тестового окружения биржи Bitmex. Веб-сокет API сервер должен давать возможность клиенту подписаться/отписаться к каналу, передающего данные о котировках.

Формат сообщения о подписки:

JSON: {“action”: “subscribe”, 
       “symbols”: <[]string>}

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

Формат сообщения об окончании подписки:

JSON: {“action”: “unsubscribe”}

В сообщении веб-сокет канала необходимо передавать следующую информацию

{
   timestamp: <timestamp>,
   symbol: <symbol_name>,
   price: <lastPrice>
}

В качестве источника данных использовать подписку “instrument” тестового вебсокет API сервиса Bitmex. При этом для соединения с веб-сокет сервером Bitmex необходимо использовать только одно подключение, независимо от количества клиентских подписок

##Usage

Start:

$ go build -o ./bin/gateway ./cmd/gateway/main.go

or

$ go build -race -o ./bin/gateway ./cmd/gateway/main.go

$ ./bin/gateway

Listen:


$ gws client -url="ws://0.0.0.0:9090/" -verbose

> {"action":"subscribe"}