class Riddl::Protocols::WebSocket

Public Class Methods

new(*args) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 69
def self.new(*args)
  instance = allocate
  instance.__send__(:initialize, *args)
  instance
end
new(app, socket) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 95
def initialize(app, socket)
  @app = app
  @socket = socket
  @ssl = socket.backend.respond_to?(:ssl?) && socket.backend.ssl?
  @closed = true
  socket.websocket = self
  socket.comm_inactivity_timeout = 0
end

Public Instance Methods

close_connection(*args) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 81
def close_connection(*args)
  EM.next_tick do
    unless closed?
      @socket.close_connection(*args)
      trigger_on_close
    end
  end
end
closed?() click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 104
def closed?
  @closed
end
send_data(data) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 75
def send_data(data)
  EM.next_tick do
    @socket.send_data(data) unless closed?
  end
end
trigger_on_close() click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 92
def trigger_on_close;           @closed = true;  @app.onclose;              end
trigger_on_error(error) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 93
def trigger_on_error(error);    @closed = true;  @app.onerror(error); true; end
trigger_on_message(msg) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 90
def trigger_on_message(msg);    @app.onmessage(msg);                        end
trigger_on_open(handshake) click to toggle source
# File lib/ruby/riddl/protocols/websocket.rb, line 91
def trigger_on_open(handshake); @closed = false; @app.onopen;               end