Class: WEBrick::Websocket::Socket

Inherits:
Object
  • Object
show all
Defined in:
lib/webrick/websocket/socket.rb

Instance Method Summary collapse

Constructor Details

#initialize(sock, handler, logger) ⇒ Socket

Returns a new instance of Socket.



6
7
8
9
10
11
12
13
# File 'lib/webrick/websocket/socket.rb', line 6

def initialize(sock, handler, logger)
  @prev = nil
  @sock = sock
  @handler = handler
  @open = true
  @logger = logger
  handle(:open)
end

Instance Method Details

#closeObject



19
20
21
22
23
24
25
# File 'lib/webrick/websocket/socket.rb', line 19

def close
  handle(:close)
  if @open
    @open = false
    send_frame(Frame.new(:close))
  end
end

#puts(data) ⇒ Object



15
16
17
# File 'lib/webrick/websocket/socket.rb', line 15

def puts(data)
  send_frame(Frame.new(:text, data))
end

#runObject



36
37
38
# File 'lib/webrick/websocket/socket.rb', line 36

def run
  handle_packet while @open
end

#send_frame(frame) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/webrick/websocket/socket.rb', line 27

def send_frame(frame)
  @logger.debug("Websocket Frame Sent: #{frame.op.to_s}(#{frame.payload.length} Bytes)")
  if frame.close? && @open
    close
  else
    frame.write(@sock)
  end
end