Class: Terminalwire::Transport::WebSocket

Inherits:
Base
  • Object
show all
Defined in:
lib/terminalwire/transport.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(websocket) ⇒ WebSocket



41
42
43
# File 'lib/terminalwire/transport.rb', line 41

def initialize(websocket)
  @websocket = websocket
end

Class Method Details

.connect(url) ⇒ Object



29
30
31
32
33
34
# File 'lib/terminalwire/transport.rb', line 29

def self.connect(url)
  uri = URI(url)
  endpoint = Async::HTTP::Endpoint.parse(uri)
  adapter = Async::WebSocket::Client.connect(endpoint)
  new(adapter)
end

.listen(url) ⇒ Object

Raises:

  • (NotImplementedError)


36
37
38
39
# File 'lib/terminalwire/transport.rb', line 36

def self.listen(url)
  # This would need to be implemented with a WebSocket server library
  raise NotImplementedError, "WebSocket server not implemented"
end

Instance Method Details

#closeObject



53
54
55
# File 'lib/terminalwire/transport.rb', line 53

def close
  @websocket.close
end

#readObject



45
46
47
# File 'lib/terminalwire/transport.rb', line 45

def read
  @websocket.read&.buffer
end

#write(data) ⇒ Object



49
50
51
# File 'lib/terminalwire/transport.rb', line 49

def write(data)
  @websocket.write(data)
end