mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
37 lines
847 B
Ruby
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 |