Class: DiverDown::Web::DevServerMiddleware::WebSocketProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/diver_down/web/dev_server_middleware.rb

Defined Under Namespace

Modules: Reader

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env, host:, port:) ⇒ WebSocketProxy

Returns a new instance of WebSocketProxy.



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/diver_down/web/dev_server_middleware.rb', line 23

def initialize(env, host:, port:)
  @env = env
  @url = "ws://#{host}:#{port}#{env['REQUEST_URI']}"
  @driver = WebSocket::Driver.rack(self)

  env['rack.hijack'].call
  @io = env['rack.hijack_io']

  EM.attach(@io, Reader) { |conn| conn.driver = @driver }

  @driver.start
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



21
22
23
# File 'lib/diver_down/web/dev_server_middleware.rb', line 21

def env
  @env
end

#urlObject (readonly)

Returns the value of attribute url.



21
22
23
# File 'lib/diver_down/web/dev_server_middleware.rb', line 21

def url
  @url
end

Instance Method Details

#write(string) ⇒ Object

Parameters:

  • string (String)


37
38
39
# File 'lib/diver_down/web/dev_server_middleware.rb', line 37

def write(string)
  @io.write(string)
end