Class: Solana::Ruby::Kit::RpcSubscriptions::Client

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Includes:
Api::AccountNotifications, Api::LogsNotifications, Api::ProgramNotifications, Api::RootNotifications, Api::SignatureNotifications, Api::SlotNotifications
Defined in:
lib/solana/ruby/kit/rpc_subscriptions/client.rb

Overview

WebSocket subscription client for Solana. Mirrors TypeScript’s createSolanaRpcSubscriptions(url) factory.

Examples:

subs = Solana::Ruby::Kit::RpcSubscriptions::Client.new('wss://api.devnet.solana.com')
sub  = subs.slot_subscribe
sub.take(3).each { |n| puts n.inspect }

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Api::SlotNotifications

#slot_subscribe

Methods included from Api::SignatureNotifications

#signature_subscribe

Methods included from Api::RootNotifications

#root_subscribe

Methods included from Api::ProgramNotifications

#program_subscribe

Methods included from Api::LogsNotifications

#logs_subscribe

Methods included from Api::AccountNotifications

#account_subscribe

Constructor Details

#initialize(url, headers: {}, ping_interval: 5.0) ⇒ Client

Returns a new instance of Client.



43
44
45
46
47
# File 'lib/solana/ruby/kit/rpc_subscriptions/client.rb', line 43

def initialize(url, headers: {}, ping_interval: 5.0)
  @transport  = T.let(Transport.new(url: url, headers: headers), Transport)
  @pinger     = T.let(Autopinger.new(@transport, interval: ping_interval), Autopinger)
  @pinger.start
end

Instance Attribute Details

#transportObject (readonly)

Returns the value of attribute transport.



34
35
36
# File 'lib/solana/ruby/kit/rpc_subscriptions/client.rb', line 34

def transport
  @transport
end

Instance Method Details

#closeObject



50
51
52
53
# File 'lib/solana/ruby/kit/rpc_subscriptions/client.rb', line 50

def close
  @pinger.stop
  @transport.close
end