mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
stream: set connection monitor delay. (#1120)
* stream: set connection monitor delay. - this fixes a bug where the connection monitor delay config value does not get set to the websocket on intialization. * multi: add connection monitor delay to exchange config. - this adds the connection monitor delay config option to the exchange type. - the validate function of the exchange type has been updated to validate the connection monitor delay value as well. * multi: resolve review issues.
This commit is contained in:
@@ -1821,5 +1821,10 @@ func (c *Exchange) Validate() error {
|
||||
if c == nil {
|
||||
return errExchangeConfigIsNil
|
||||
}
|
||||
|
||||
if c.ConnectionMonitorDelay <= 0 {
|
||||
c.ConnectionMonitorDelay = DefaultConnectionMonitorDelay
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ const (
|
||||
defaultWebsocketResponseMaxLimit = time.Second * 7
|
||||
defaultWebsocketOrderbookBufferLimit = 5
|
||||
defaultWebsocketTrafficTimeout = time.Second * 30
|
||||
DefaultConnectionMonitorDelay = time.Second * 2
|
||||
maxAuthFailures = 3
|
||||
defaultNTPAllowedDifference = 50000000
|
||||
defaultNTPAllowedNegativeDifference = 50000000
|
||||
@@ -149,6 +150,7 @@ type Exchange struct {
|
||||
WebsocketResponseCheckTimeout time.Duration `json:"websocketResponseCheckTimeout"`
|
||||
WebsocketResponseMaxLimit time.Duration `json:"websocketResponseMaxLimit"`
|
||||
WebsocketTrafficTimeout time.Duration `json:"websocketTrafficTimeout"`
|
||||
ConnectionMonitorDelay time.Duration `json:"connectionMonitorDelay"`
|
||||
ProxyAddress string `json:"proxyAddress,omitempty"`
|
||||
BaseCurrencies currency.Currencies `json:"baseCurrencies"`
|
||||
CurrencyPairs *currency.PairsManager `json:"currencyPairs"`
|
||||
|
||||
@@ -231,14 +231,15 @@ func (b *Binance) Setup(exch *config.Exchange) error {
|
||||
return err
|
||||
}
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: binanceDefaultWebsocketURL,
|
||||
RunningURL: ePoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: binanceDefaultWebsocketURL,
|
||||
RunningURL: ePoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -189,14 +189,15 @@ func (bi *Binanceus) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = bi.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: binanceusDefaultWebsocketURL,
|
||||
RunningURL: ePoint,
|
||||
Connector: bi.WsConnect,
|
||||
Subscriber: bi.Subscribe,
|
||||
Unsubscriber: bi.Unsubscribe,
|
||||
GenerateSubscriptions: bi.GenerateSubscriptions,
|
||||
Features: &bi.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: binanceusDefaultWebsocketURL,
|
||||
RunningURL: ePoint,
|
||||
Connector: bi.WsConnect,
|
||||
Subscriber: bi.Subscribe,
|
||||
Unsubscriber: bi.Unsubscribe,
|
||||
GenerateSubscriptions: bi.GenerateSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &bi.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -206,14 +206,15 @@ func (b *Bitfinex) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: publicBitfinexWebsocketEndpoint,
|
||||
RunningURL: wsEndpoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: publicBitfinexWebsocketEndpoint,
|
||||
RunningURL: wsEndpoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
UpdateEntriesByID: true,
|
||||
},
|
||||
|
||||
@@ -174,13 +174,14 @@ func (b *Bithumb) Setup(exch *config.Exchange) error {
|
||||
return err
|
||||
}
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: wsEndpoint,
|
||||
RunningURL: ePoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
GenerateSubscriptions: b.GenerateSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: wsEndpoint,
|
||||
RunningURL: ePoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
GenerateSubscriptions: b.GenerateSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -183,14 +183,15 @@ func (b *Bitmex) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bitmexWSURL,
|
||||
RunningURL: wsEndpoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bitmexWSURL,
|
||||
RunningURL: wsEndpoint,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
UpdateEntriesByID: true,
|
||||
},
|
||||
|
||||
@@ -170,14 +170,15 @@ func (b *Bitstamp) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bitstampWSURL,
|
||||
RunningURL: wsURL,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.generateDefaultSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bitstampWSURL,
|
||||
RunningURL: wsURL,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.generateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -166,14 +166,15 @@ func (b *Bittrex) Setup(exch *config.Exchange) error {
|
||||
|
||||
// Websocket details setup below
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bittrexAPIWSURL, // Default ws endpoint so we can roll back via CLI if needed.
|
||||
RunningURL: wsRunningEndpoint,
|
||||
Connector: b.WsConnect, // Connector function outlined above.
|
||||
Subscriber: b.Subscribe, // Subscriber function outlined above.
|
||||
Unsubscriber: b.Unsubscribe, // Unsubscriber function outlined above.
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions, // GenerateDefaultSubscriptions function outlined above.
|
||||
Features: &b.Features.Supports.WebsocketCapabilities, // Defines the capabilities of the websocket outlined in supported features struct. This allows the websocket connection to be flushed appropriately if we have a pair/asset enable/disable change. This is outlined below.
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bittrexAPIWSURL, // Default ws endpoint so we can roll back via CLI if needed.
|
||||
RunningURL: wsRunningEndpoint,
|
||||
Connector: b.WsConnect, // Connector function outlined above.
|
||||
Subscriber: b.Subscribe, // Subscriber function outlined above.
|
||||
Unsubscriber: b.Unsubscribe, // Unsubscriber function outlined above.
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions, // GenerateDefaultSubscriptions function outlined above.
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities, // Defines the capabilities of the websocket outlined in supported features struct. This allows the websocket connection to be flushed appropriately if we have a pair/asset enable/disable change. This is outlined below.
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -176,14 +176,15 @@ func (b *BTCMarkets) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: btcMarketsWSURL,
|
||||
RunningURL: wsURL,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.generateDefaultSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: btcMarketsWSURL,
|
||||
RunningURL: wsURL,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.generateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
UpdateIDProgression: true,
|
||||
|
||||
@@ -185,14 +185,15 @@ func (b *BTSE) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = b.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: btseWebsocket,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: btseWebsocket,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: b.WsConnect,
|
||||
Subscriber: b.Subscribe,
|
||||
Unsubscriber: b.Unsubscribe,
|
||||
GenerateSubscriptions: b.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &b.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -204,15 +204,16 @@ func (by *Bybit) Setup(exch *config.Exchange) error {
|
||||
|
||||
err = by.Websocket.Setup(
|
||||
&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bybitWSBaseURL + wsSpotPublicTopicV2,
|
||||
RunningURL: wsRunningEndpoint,
|
||||
RunningURLAuth: bybitWSBaseURL + wsSpotPrivate,
|
||||
Connector: by.WsConnect,
|
||||
Subscriber: by.Subscribe,
|
||||
Unsubscriber: by.Unsubscribe,
|
||||
GenerateSubscriptions: by.GenerateDefaultSubscriptions,
|
||||
Features: &by.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: bybitWSBaseURL + wsSpotPublicTopicV2,
|
||||
RunningURL: wsRunningEndpoint,
|
||||
RunningURLAuth: bybitWSBaseURL + wsSpotPrivate,
|
||||
Connector: by.WsConnect,
|
||||
Subscriber: by.Subscribe,
|
||||
Unsubscriber: by.Unsubscribe,
|
||||
GenerateSubscriptions: by.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &by.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -172,14 +172,15 @@ func (c *CoinbasePro) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = c.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: coinbaseproWebsocketURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: c.WsConnect,
|
||||
Subscriber: c.Subscribe,
|
||||
Unsubscriber: c.Unsubscribe,
|
||||
GenerateSubscriptions: c.GenerateDefaultSubscriptions,
|
||||
Features: &c.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: coinbaseproWebsocketURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: c.WsConnect,
|
||||
Subscriber: c.Subscribe,
|
||||
Unsubscriber: c.Unsubscribe,
|
||||
GenerateSubscriptions: c.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &c.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
},
|
||||
|
||||
@@ -155,14 +155,15 @@ func (c *COINUT) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = c.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: coinutWebsocketURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: c.WsConnect,
|
||||
Subscriber: c.Subscribe,
|
||||
Unsubscriber: c.Unsubscribe,
|
||||
GenerateSubscriptions: c.GenerateDefaultSubscriptions,
|
||||
Features: &c.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: coinutWebsocketURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: c.WsConnect,
|
||||
Subscriber: c.Subscribe,
|
||||
Unsubscriber: c.Unsubscribe,
|
||||
GenerateSubscriptions: c.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &c.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -1198,6 +1198,7 @@ func TestSetupDefaults(t *testing.T) {
|
||||
API: config.APIConfig{
|
||||
AuthenticatedSupport: true,
|
||||
},
|
||||
ConnectionMonitorDelay: time.Second * 5,
|
||||
}
|
||||
|
||||
err = b.SetupDefaults(&cfg)
|
||||
|
||||
@@ -172,13 +172,14 @@ func (g *Gateio) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = g.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: gateioWebsocketEndpoint,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: g.WsConnect,
|
||||
Subscriber: g.Subscribe,
|
||||
GenerateSubscriptions: g.GenerateDefaultSubscriptions,
|
||||
Features: &g.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: gateioWebsocketEndpoint,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: g.WsConnect,
|
||||
Subscriber: g.Subscribe,
|
||||
GenerateSubscriptions: g.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &g.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -160,14 +160,15 @@ func (g *Gemini) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = g.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: geminiWebsocketEndpoint,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: g.WsConnect,
|
||||
Subscriber: g.Subscribe,
|
||||
Unsubscriber: g.Unsubscribe,
|
||||
GenerateSubscriptions: g.GenerateDefaultSubscriptions,
|
||||
Features: &g.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: geminiWebsocketEndpoint,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: g.WsConnect,
|
||||
Subscriber: g.Subscribe,
|
||||
Unsubscriber: g.Unsubscribe,
|
||||
GenerateSubscriptions: g.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &g.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -173,14 +173,15 @@ func (h *HitBTC) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = h.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: hitbtcWebsocketAddress,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: h.WsConnect,
|
||||
Subscriber: h.Subscribe,
|
||||
Unsubscriber: h.Unsubscribe,
|
||||
GenerateSubscriptions: h.GenerateDefaultSubscriptions,
|
||||
Features: &h.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: hitbtcWebsocketAddress,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: h.WsConnect,
|
||||
Subscriber: h.Subscribe,
|
||||
Unsubscriber: h.Unsubscribe,
|
||||
GenerateSubscriptions: h.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &h.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -204,14 +204,15 @@ func (h *HUOBI) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = h.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: wsMarketURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: h.WsConnect,
|
||||
Subscriber: h.Subscribe,
|
||||
Unsubscriber: h.Unsubscribe,
|
||||
GenerateSubscriptions: h.GenerateDefaultSubscriptions,
|
||||
Features: &h.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: wsMarketURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: h.WsConnect,
|
||||
Subscriber: h.Subscribe,
|
||||
Unsubscriber: h.Unsubscribe,
|
||||
GenerateSubscriptions: h.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &h.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -219,15 +219,16 @@ func (k *Kraken) Setup(exch *config.Exchange) error {
|
||||
return err
|
||||
}
|
||||
err = k.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: krakenWSURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: k.WsConnect,
|
||||
Subscriber: k.Subscribe,
|
||||
Unsubscriber: k.Unsubscribe,
|
||||
GenerateSubscriptions: k.GenerateDefaultSubscriptions,
|
||||
Features: &k.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{SortBuffer: true},
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: krakenWSURL,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: k.WsConnect,
|
||||
Subscriber: k.Subscribe,
|
||||
Unsubscriber: k.Unsubscribe,
|
||||
GenerateSubscriptions: k.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &k.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{SortBuffer: true},
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -180,14 +180,15 @@ func (o *OKCoin) Setup(exch *config.Exchange) error {
|
||||
return err
|
||||
}
|
||||
err = o.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: wsEndpoint,
|
||||
RunningURL: wsEndpoint,
|
||||
Connector: o.WsConnect,
|
||||
Subscriber: o.Subscribe,
|
||||
Unsubscriber: o.Unsubscribe,
|
||||
GenerateSubscriptions: o.GenerateDefaultSubscriptions,
|
||||
Features: &o.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: wsEndpoint,
|
||||
RunningURL: wsEndpoint,
|
||||
Connector: o.WsConnect,
|
||||
Subscriber: o.Subscribe,
|
||||
Unsubscriber: o.Unsubscribe,
|
||||
GenerateSubscriptions: o.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &o.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -197,14 +197,15 @@ func (ok *Okx) Setup(exch *config.Exchange) error {
|
||||
return err
|
||||
}
|
||||
err = ok.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: okxAPIWebsocketPublicURL,
|
||||
RunningURL: wsRunningEndpoint,
|
||||
Connector: ok.WsConnect,
|
||||
Subscriber: ok.Subscribe,
|
||||
Unsubscriber: ok.Unsubscribe,
|
||||
GenerateSubscriptions: ok.GenerateDefaultSubscriptions,
|
||||
Features: &ok.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: okxAPIWebsocketPublicURL,
|
||||
RunningURL: wsRunningEndpoint,
|
||||
Connector: ok.WsConnect,
|
||||
Subscriber: ok.Subscribe,
|
||||
Unsubscriber: ok.Unsubscribe,
|
||||
GenerateSubscriptions: ok.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &ok.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
Checksum: ok.CalculateUpdateOrderbookChecksum,
|
||||
},
|
||||
|
||||
@@ -184,14 +184,15 @@ func (p *Poloniex) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = p.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: poloniexWebsocketAddress,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: p.WsConnect,
|
||||
Subscriber: p.Subscribe,
|
||||
Unsubscriber: p.Unsubscribe,
|
||||
GenerateSubscriptions: p.GenerateDefaultSubscriptions,
|
||||
Features: &p.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: poloniexWebsocketAddress,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: p.WsConnect,
|
||||
Subscriber: p.Subscribe,
|
||||
Unsubscriber: p.Unsubscribe,
|
||||
GenerateSubscriptions: p.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Features: &p.Features.Supports.WebsocketCapabilities,
|
||||
OrderbookBufferConfig: buffer.Config{
|
||||
SortBuffer: true,
|
||||
SortBufferByUpdateIDs: true,
|
||||
|
||||
@@ -115,8 +115,9 @@ func (w *Websocket) Setup(s *WebsocketSetup) error {
|
||||
if w.features.Unsubscribe && s.Unsubscriber == nil {
|
||||
return fmt.Errorf("%s %w", w.exchangeName, errWebsocketUnsubscriberUnset)
|
||||
}
|
||||
if s.ConnectionMonitorDelay <= 0 {
|
||||
w.connectionMonitorDelay = defaultConnectionMonitorDelay
|
||||
w.connectionMonitorDelay = s.ConnectionMonitorDelay
|
||||
if w.connectionMonitorDelay <= 0 {
|
||||
w.connectionMonitorDelay = config.DefaultConnectionMonitorDelay
|
||||
}
|
||||
w.Unsubscriber = s.Unsubscriber
|
||||
|
||||
|
||||
@@ -15,9 +15,7 @@ import (
|
||||
// Websocket functionality list and state consts
|
||||
const (
|
||||
// WebsocketNotEnabled alerts of a disabled websocket
|
||||
WebsocketNotEnabled = "exchange_websocket_not_enabled"
|
||||
// defaultConnectionMonitorDelay connection monitor time delays and limits
|
||||
defaultConnectionMonitorDelay = 2 * time.Second
|
||||
WebsocketNotEnabled = "exchange_websocket_not_enabled"
|
||||
WebsocketNotAuthenticatedUsingRest = "%v - Websocket not authenticated, using REST\n"
|
||||
Ping = "ping"
|
||||
Pong = "pong"
|
||||
|
||||
@@ -171,13 +171,14 @@ func (z *ZB) Setup(exch *config.Exchange) error {
|
||||
}
|
||||
|
||||
err = z.Websocket.Setup(&stream.WebsocketSetup{
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: zbWebsocketAPI,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: z.WsConnect,
|
||||
GenerateSubscriptions: z.GenerateDefaultSubscriptions,
|
||||
Subscriber: z.Subscribe,
|
||||
Features: &z.Features.Supports.WebsocketCapabilities,
|
||||
ExchangeConfig: exch,
|
||||
DefaultURL: zbWebsocketAPI,
|
||||
RunningURL: wsRunningURL,
|
||||
Connector: z.WsConnect,
|
||||
GenerateSubscriptions: z.GenerateDefaultSubscriptions,
|
||||
ConnectionMonitorDelay: exch.ConnectionMonitorDelay,
|
||||
Subscriber: z.Subscribe,
|
||||
Features: &z.Features.Supports.WebsocketCapabilities,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user