Class: Terminalwire::Server::WebSocket

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/terminalwire/server/web_socket.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/terminalwire/server/web_socket.rb', line 6

def call(env)
  Async::WebSocket::Adapters::Rack.open(env, protocols: ['ws']) do |connection|
    handle(
      adapter: Adapter::Socket.new(Terminalwire::Transport::WebSocket.new(connection)),
      env:
    )
  end or [200, { "Content-Type" => "text/plain" }, ["Connect via WebSockets"]]
end

#handle(adapter:, env:) ⇒ Object



15
16
17
18
19
# File 'lib/terminalwire/server/web_socket.rb', line 15

def handle(adapter:, env:)
  while message = adapter.read
    puts message
  end
end