class Metybur::Connection
Public Class Methods
new(url, credentials)
click to toggle source
# File lib/metybur.rb, line 36 def initialize(url, credentials) @url, @credentials = url, credentials end
Public Instance Methods
connect_client(client = Metybur::Client.new(@credentials))
click to toggle source
# File lib/metybur.rb, line 40 def connect_client(client = Metybur::Client.new(@credentials)) websocket = CONFIG[:websocket_client_class].new(@url) client.websocket = websocket client.connect logging_middleware = Metybur::LoggingMiddleware.new json_middleware = Metybur::JSONMiddleware.new ping_pong_middleware = Metybur::PingPongMiddleware.new(websocket) middleware = [logging_middleware, json_middleware, ping_pong_middleware] websocket.on(:open) do |event| middleware.inject(event) { |e, mw| mw.open(e) } end websocket.on(:message) do |event| middleware.inject(event) { |e, mw| mw.message(e) } end websocket.on(:close) do |event| middleware.inject(event) { |e, mw| mw.close(e) } # Reconnect connect_client(client) end client end