Sha256: 20bd9ad1a095ab79777824366700e0d789fc74985fa4ffcd649cbd8f87add508
Contents?: true
Size: 999 Bytes
Versions: 1
Compression:
Stored size: 999 Bytes
Contents
require 'uuidtools' module Alondra module Connections extend self def connections @connections ||= {} end def [](websocket) connections[websocket] end def []=(websocket, connection) connections[websocket] = connection end def delete(websocket) connections.delete websocket end end class Connection attr_reader :uuid attr_reader :websocket attr_reader :session attr_reader :channels def initialize(websocket, session = {}) @session = session.symbolize_keys @websocket = websocket @uuid = UUIDTools::UUID.random_create Connections[websocket] = self end def channels @channels ||= [] end def receive(event_or_message) Rails.logger.debug "sending: #{event_or_message.to_json}" websocket.send event_or_message.to_json end def destroy! channels.each { |c| c.unsubscribe self } Connections.delete self.websocket end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alondra-0.0.3 | lib/alondra/connection.rb |