Sha256: 34390832cf4fe217b505e058c0b91b767f63d94aa98df6b6909e6f3d66e7b779
Contents?: true
Size: 923 Bytes
Versions: 2
Compression:
Stored size: 923 Bytes
Contents
module Grenache class NoPeerFoundError < Exception; end class Ws < Grenache::Base def listen(key, port, opts={}, &block) EM.defer { @ws = WebsocketServer.new port, &block @ws.start_server } announce(key, port, opts) do |res| puts "#{key} announced #{res}" end end def request(key, payload, &cb) json = ServiceMessage.new(payload,key).to_json if service_cache[key] && service_cache[key].connected? service_cache[key].send json else lookup key do |services| if services && services.length > 0 service = services.sample service_cache[key] = WebsocketClient.new(service, &cb) service_cache[key].send json else cb.call ["NoServiceFound", nil] end end end end def service_cache @service_cache ||= {} end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
grenache-ruby-ws-0.2.13 | lib/grenache/ws.rb |
grenache-ruby-ws-0.2.12 | lib/grenache/ws.rb |