class Padrino::WebSockets::Faye::EventManager

Public Class Methods

new(channel, user, ws, event_context, &block) click to toggle source
# File lib/padrino-websockets/faye/event-manager.rb, line 5
def initialize(channel, user, ws, event_context, &block)
  ws.on :open do |event|
    self.on_open event #&method(:on_open)
  end
  ws.on :message do |event|
    self.on_message event.data, @ws
  end
  ws.on :close do |event|
    self.on_shutdown event # method(:on_shutdown)
  end

  super channel, user, ws, event_context, &block
end
write(message, ws) click to toggle source

Write a message to the WebSocket.

# File lib/padrino-websockets/faye/event-manager.rb, line 30
def self.write(message, ws)
  ws.send ::Oj.dump(message)
end

Public Instance Methods

on_shutdown(event) click to toggle source

Manage the WebSocket’s connection being closed.

# File lib/padrino-websockets/faye/event-manager.rb, line 22
def on_shutdown(event)
  @pinger.cancel if @pinger
  super
end

Protected Instance Methods

on_open(event) click to toggle source

Maintain the connection if ping frames are supported

# File lib/padrino-websockets/faye/event-manager.rb, line 38
def on_open(event)
  super event

  @ws.ping('pong')
end