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