module ServerEngine::SocketManager
Constants
- INTERNAL_TOKEN
This token is used for communication between peers. If token is mismatched, messages will be discarded
Public Class Methods
recv_peer(peer)
click to toggle source
# File lib/serverengine/socket_manager.rb, line 209 def self.recv_peer(peer) res = peer.read(4) return nil if res.nil? len = res.unpack('N').first data = peer.read(len) data = JSON.parse(data) return nil if SocketManager::INTERNAL_TOKEN != data.first Marshal.load(Base64.strict_decode64(data.last)) end
send_peer(peer, obj)
click to toggle source
# File lib/serverengine/socket_manager.rb, line 202 def self.send_peer(peer, obj) data = [SocketManager::INTERNAL_TOKEN, Base64.strict_encode64(Marshal.dump(obj))] data = JSON.generate(data) peer.write [data.bytesize].pack('N') peer.write data end