Class: NATS::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/stack-service-base/nats_patch_1.rb

Instance Method Summary collapse

Instance Method Details

#create_socketObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/stack-service-base/nats_patch_1.rb', line 35

def create_socket
  socket_class = case @uri.scheme
                 when "nats", "tls"
                   NATS::IO::Socket
                 when "ws", "wss"
                   # require_relative "websocket"
                   # TODO Local patch
                   require 'nats/io/websocket'
                   NATS::IO::WebSocket
                 else
                   raise NotImplementedError, "#{@uri.scheme} protocol is not supported, check NATS cluster URL spelling"
                 end

  socket_class.new(
    uri: @uri,
    tls: {context: tls_context, hostname: @hostname},
    connect_timeout: NATS::IO::DEFAULT_CONNECT_TIMEOUT,
    **@initial_options # TODO PATCH https://github.com/nats-io/nats-pure.rb/issues/171
  )
end