Class KrakenStreamingExchange

java.lang.Object
org.knowm.xchange.BaseExchange
org.knowm.xchange.kraken.KrakenExchange
info.bitrich.xchangestream.kraken.KrakenStreamingExchange
All Implemented Interfaces:
StreamingExchange, org.knowm.xchange.Exchange

public class KrakenStreamingExchange extends KrakenExchange implements StreamingExchange
Author:
makarid
  • Constructor Details

    • KrakenStreamingExchange

      public KrakenStreamingExchange()
  • Method Details

    • pickUri

      public static String pickUri(boolean isPrivate, boolean useBeta)
    • initServices

      protected void initServices()
      Overrides:
      initServices in class KrakenExchange
    • connect

      public io.reactivex.rxjava3.core.Completable connect(ProductSubscription... args)
      Specified by:
      connect in interface StreamingExchange
    • disconnect

      public io.reactivex.rxjava3.core.Completable disconnect()
      Specified by:
      disconnect in interface StreamingExchange
    • isAlive

      public boolean isAlive()
      Specified by:
      isAlive in interface StreamingExchange
    • connectionSuccess

      public io.reactivex.rxjava3.core.Observable<Object> connectionSuccess()
      Specified by:
      connectionSuccess in interface StreamingExchange
    • disconnectObservable

      public io.reactivex.rxjava3.core.Observable<Object> disconnectObservable()
      Specified by:
      disconnectObservable in interface StreamingExchange
    • reconnectFailure

      public io.reactivex.rxjava3.core.Observable<Throwable> reconnectFailure()
      Specified by:
      reconnectFailure in interface StreamingExchange
    • connectionStateObservable

      public io.reactivex.rxjava3.core.Observable<info.bitrich.xchangestream.service.netty.ConnectionStateModel.State> connectionStateObservable()
      Specified by:
      connectionStateObservable in interface StreamingExchange
    • privateConnectionSuccess

      public io.reactivex.rxjava3.core.Observable<Object> privateConnectionSuccess()
    • privateReconnectFailure

      public io.reactivex.rxjava3.core.Observable<Throwable> privateReconnectFailure()
    • privateConnectionStateObservable

      public io.reactivex.rxjava3.core.Observable<info.bitrich.xchangestream.service.netty.ConnectionStateModel.State> privateConnectionStateObservable()
    • privateDisconnectObservable

      public io.reactivex.rxjava3.core.Observable<Object> privateDisconnectObservable()
    • getDefaultExchangeSpecification

      public org.knowm.xchange.ExchangeSpecification getDefaultExchangeSpecification()
      Specified by:
      getDefaultExchangeSpecification in interface org.knowm.xchange.Exchange
      Overrides:
      getDefaultExchangeSpecification in class KrakenExchange
    • getStreamingMarketDataService

      public StreamingMarketDataService getStreamingMarketDataService()
      Specified by:
      getStreamingMarketDataService in interface StreamingExchange
    • getStreamingTradeService

      public StreamingTradeService getStreamingTradeService()
      Specified by:
      getStreamingTradeService in interface StreamingExchange
    • useCompressedMessages

      public void useCompressedMessages(boolean compressedMessages)
      Specified by:
      useCompressedMessages in interface StreamingExchange
    • authData

      public KrakenWebsocketToken authData(KrakenAccountServiceRaw accountServiceRaw)
      Gets a WebSocketToken following https://support.kraken.com/hc/en-us/articles/360034664311-How-to-subscribe-to-the-Kraken-WebSocket-private-feeds

      Token requests should be made before any Websocket reconnection to avoid cases where the token has become invalid due to issues on the Kraken side.

      From Kraken support:

      In theory WebSocket authentication tokens can last indefinitely, but in reality they do sometimes expire causing an invalid session error. As an example, during a recent WebSocket API upgrade, many authentication tokens became invalid (for no apparent reason to the token owners), causing unexpected invalid session errors upon reconnecting/resubscribing after the upgrade.

      Parameters:
      accountServiceRaw - account service to query new token against
      Returns:
      token retrieved
    • resubscribeChannels

      public void resubscribeChannels()
      Specified by:
      resubscribeChannels in interface StreamingExchange
    • getSystemStatusChanges

      public io.reactivex.rxjava3.core.Observable<KrakenSystemStatus> getSystemStatusChanges()
    • getPublicSubscriptionStatusChanges

      public io.reactivex.rxjava3.core.Observable<KrakenSubscriptionStatusMessage> getPublicSubscriptionStatusChanges()
    • getPrivateSubscriptionStatusChanges

      public io.reactivex.rxjava3.core.Observable<KrakenSubscriptionStatusMessage> getPrivateSubscriptionStatusChanges()