class Rubame::Client

Attributes

closed[RW]
frame[RW]
handshake[RW]
messaged[RW]
opened[RW]
socket[RW]

Public Class Methods

new(socket, handshake, server) click to toggle source
# File lib/rubame/server.rb, line 98
def initialize(socket, handshake, server)
  @socket = socket
  @handshake = handshake
  @frame = WebSocket::Frame::Incoming::Server.new(version: @handshake.version)
  @opened = false
  @messaged = []
  @closed = false
  @server = server
end

Public Instance Methods

onclose(&blk) click to toggle source
# File lib/rubame/server.rb, line 136
def onclose(&blk)
  return unless @closed
  blk.call
ensure
  # do nothing
end
onmessage(&blk) click to toggle source
# File lib/rubame/server.rb, line 128
def onmessage(&blk)
  @messaged.each do |x|
    blk.call(x.to_s)
  end
ensure
  @messaged = []
end
onopen(&blk) click to toggle source
# File lib/rubame/server.rb, line 121
def onopen(&blk)
  return unless @opened
  blk.call
ensure
  @opened = false
end
send_data(data, binary = false) click to toggle source
# File lib/rubame/server.rb, line 112
def send_data(data, binary = false)
  type = binary ? :binary : :text
  frame = WebSocket::Frame::Outgoing::Server.new(version: @handshake.version, data: data, type: type)
  @socket.write frame
  @socket.flush
rescue
  @server.close(self) unless @closed
end
write(data) click to toggle source
# File lib/rubame/server.rb, line 108
def write(data)
  @socket.write data
end