Sha256: 42a307d893bfd8ed72c06b2b9fb590b8c624e4701f5eb9434991eb38200cc45b
Contents?: true
Size: 896 Bytes
Versions: 1
Compression:
Stored size: 896 Bytes
Contents
require 'socket' require_relative 'tattler' module Buschtelefon class NetTattler < Tattler attr_accessor :port def initialize(port: nil) super() @port = port || rand(1025..65365) # TODO: use port 0 end def listen(&_callback) puts "Started UDP server on #{@port}..." Socket.udp_server_loop(@port) do |message, message_source| # puts "Got \"#{message}\" from #{message_source}" if message == "\x05" handle_knowledge_inquiry(message_source) else gossip = Gossip.new(message) handle_incoming_gossip(gossip) yield(gossip) if block_given? end end end private def handle_incoming_gossip(gossip) feed(gossip) end def handle_knowledge_inquiry(message_source) transfer_knowledge(RemoteTattler.new(message_source.local_address)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
buschtelefon-0.3.0 | lib/buschtelefon/net_tattler.rb |