Files
i-mic-fps/lib/networking/backend/packets/data_packet.rb

37 lines
847 B
Ruby

module CyberarmEngine
module Networking
class DataPacket < Packet
HEADER_PACKER = "CCn"
HEADER_LENGTH = 1 + 1 + 4 # bytes
def self.type
Protocol::DATA
end
def self.decode(raw_message)
header = raw_message.unpack(HEADER_PACKER)
message = raw_message[HEADER_LENGTH..raw_message.length - 1]
DataPacket.new(protocol_version: header[0], type: header[1], message: message)
end
def initialize(protocol_version:, type:, peer_id:, message:)
@protocol_version = protocol_version
@type = type
@peer_id = peer_id
@message = message
end
def encode
header = [
Protocol::PROTOCOL_VERSION,
@type,
@peer_id,
].pack(HEADER_PACKER)
"#{header}#{message}"
end
end
end
end