diff --git a/exchanges/binance/binance.go b/exchanges/binance/binance.go index 626e2381..b66c9092 100644 --- a/exchanges/binance/binance.go +++ b/exchanges/binance/binance.go @@ -94,6 +94,7 @@ func (b *Binance) SetDefaults() { b.APIUrlDefault = apiURL b.APIUrl = b.APIUrlDefault b.WebsocketInit() + b.WebsocketURL = binanceDefaultWebsocketURL b.Websocket.Functionality = exchange.WebsocketTradeDataSupported | exchange.WebsocketTickerSupported | exchange.WebsocketKlineSupported | @@ -112,6 +113,7 @@ func (b *Binance) Setup(exch *config.ExchangeConfig) { b.SetHTTPClientUserAgent(exch.HTTPUserAgent) b.RESTPollingDelay = exch.RESTPollingDelay b.Verbose = exch.Verbose + b.Websocket.SetWsStatusAndConnection(exch.Websocket) b.BaseCurrencies = exch.BaseCurrencies b.AvailablePairs = exch.AvailablePairs b.EnabledPairs = exch.EnabledPairs diff --git a/exchanges/binance/binance_websocket.go b/exchanges/binance/binance_websocket.go index da1ef320..847e0901 100644 --- a/exchanges/binance/binance_websocket.go +++ b/exchanges/binance/binance_websocket.go @@ -185,6 +185,7 @@ func (b *Binance) WSConnect() error { // WSReadData reads from the websocket connection and returns the response func (b *Binance) WSReadData() (exchange.WebsocketResponse, error) { msgType, resp, err := b.WebsocketConn.ReadMessage() + if err != nil { return exchange.WebsocketResponse{}, err } @@ -226,8 +227,8 @@ func (b *Binance) WsHandleData() { string(read.Raw)) continue } - - switch multiStreamData.Stream { + streamType := strings.Split(multiStreamData.Stream, "@") + switch streamType[1] { case "trade": trade := TradeStream{} @@ -274,7 +275,7 @@ func (b *Binance) WsHandleData() { var wsTicker exchange.TickerData - wsTicker.Timestamp = time.Unix(0, t.EventTime) + wsTicker.Timestamp = time.Unix(t.EventTime/1000, 0) wsTicker.Pair = currency.NewPairFromString(t.Symbol) wsTicker.AssetType = ticker.Spot wsTicker.Exchange = b.GetName() @@ -285,6 +286,7 @@ func (b *Binance) WsHandleData() { wsTicker.LowPrice, _ = strconv.ParseFloat(t.LowPrice, 64) b.Websocket.DataHandler <- wsTicker + continue case "kline": kline := KlineStream{}