Options
All
  • Public
  • Public/Protected
  • All
Menu

Parses messages from the server and compiles messages to the server. This parser shall adhere to the latest definition of our network protocol found here:

Implemented as Singleton Pattern. See https://en.wikipedia.org/wiki/Singleton_pattern

https://github.zhaw.ch/raycasters/docs/wiki/Protocol#byte-stream

Hierarchy

  • ProtocolParser

Index

Constructors

Private constructor

Properties

Private textDecoder

textDecoder: TextDecoder

Provides functions to decode and encode strings into and from different encodings.

Static Private instance

instance: ProtocolParser

Singleton instance.

Accessors

Static get

Methods

Private assemblePlayerList

  • assemblePlayerList(opCode: OpCode, byteData: Uint8Array, playerCount: number): PlayerInfo[]
  • Parse SENDALLPLAYER* packet types and generate PlayerInfos

    Parameters

    • opCode: OpCode

      The type of packet (what just happened)

    • byteData: Uint8Array

      Raw data from server we have to convert

    • playerCount: number

      How many players present (eg. how many PlayerInfos to generate)

    Returns PlayerInfo[]

    an array of PlayerInfo instances

Private assembleString

  • assembleString(byteData: Uint8Array, startIndex: number): string
  • Assembles a string from given byte array.

    Parameters

    • byteData: Uint8Array

      raw byte data from server.

    • startIndex: number

      starting index from byte array message.

    Returns string

    a fully assembled string.

Private floatToU8Array

  • floatToU8Array(floatToConvert: number): Uint8Array
  • Assembles an unsigned 8-bit integer array from a number type (float)

    Parameters

    • floatToConvert: number

      number type float to be converted.

    Returns Uint8Array

    a fully assembled unsigned 8-bit integer array.

parse

  • parse(message: Uint8Array): Packet
  • Parse a chunk of byte stream received from the server. We'll use this in our gameloop to make things happen such as show where other players have moved or who has shot, etc.

    Parameters

    • message: Uint8Array

      Array of bytes sent from server.

    Returns Packet

    a new Packet object containing the opcode and optional parameters.

serialize

  • serialize(packet: Packet): Uint8Array
  • Convert a packet to a binary array compatible with our protocl

    Parameters

    • packet: Packet

      The packet we want to send over to the server

    Returns Uint8Array

    Byte Array of protocol data to be sent to the server

Private u8ArrayToU16

  • u8ArrayToU16(byteData: Uint8Array, byteOffset: number): number
  • Helper method to convert an unsigned 16-bit value from the byte stream to numbers.

    Parameters

    • byteData: Uint8Array

      raw byte data from server.

    • byteOffset: number

      starting index from byte array message.

    Returns number

    a converter number type value.

Private u8ArraytoBigInt

  • u8ArraytoBigInt(byteData: Uint8Array, startIndex: number): BigInt
  • Assembles an BigInt (64 bit) number from a given byte array.

    Parameters

    • byteData: Uint8Array

      raw byte data from server.

    • startIndex: number

      starting index from byte array message.

    Returns BigInt

    a fully assembled BigInt (64 bit) number.

Private u8ArraytoFloat

  • u8ArraytoFloat(byteData: Uint8Array, startIndex: number): number
  • Assembles a float64 number from a given byte array.

    Parameters

    • byteData: Uint8Array

      raw byte data from server.

    • startIndex: number

      starting index from byte array message.

    Returns number

    a fully assembled float number.

Generated using TypeDoc