class Vines::Cluster::StreamProxy

StreamProxy behaves like an EM::Connection so that stanzas may be sent to remote nodes just as they are to locally connected streams. The rest of the system doesn't know or care that these “streams” send their traffic over redis pubsub channels.

Attributes

user[R]

Public Class Methods

new(cluster, session) click to toggle source
# File lib/vines/cluster.rb, line 206
def initialize(cluster, session)
  @cluster, @user = cluster, UserProxy.new(cluster, session)
  @node, @available, @interested, @presence =
    session.values_at('node', 'available', 'interested', 'presence')

  unless @presence.nil? || @presence.empty?
    @presence = Nokogiri::XML(@presence).root rescue nil
  end
end

Public Instance Methods

available?() click to toggle source
# File lib/vines/cluster.rb, line 216
def available?
  @available
end
interested?() click to toggle source
# File lib/vines/cluster.rb, line 220
def interested?
  @interested
end
last_broadcast_presence() click to toggle source
# File lib/vines/cluster.rb, line 224
def last_broadcast_presence
  @presence
end
write(stanza) click to toggle source
# File lib/vines/cluster.rb, line 228
def write(stanza)
  @cluster.route(stanza, @node)
end