export function encodeMessage()

in src/main/resources/static/components/session/AxtMessage.ts [82:112]


export function encodeMessage(message: AxtMessage): ByteBuffer {
    const len1 = message.channelId.length
    const len2 = message.instanceId.length
    const len3 = message.payLoad.byteLength
    const total = 30 + len1 + len2 + len3

    let buffer: ByteBuffer = ByteBuffer.allocate(total, true)
    buffer.littleEndian = true
    buffer.writeInt32(message.msgType)
    buffer.writeString(message.version)

    buffer.writeUint8(len1)
    if (len1 > 0) {
        buffer.writeString(message.channelId)
    }

    buffer.writeUint8(len2)
    if (len2 > 0) {
        buffer.writeString(message.instanceId)
    }

    buffer.writeLong(message.timestamp.toNumber())
    buffer.writeUint32(message.inputSeq)
    buffer.writeUint32(message.outputSeq)

    buffer.writeUint16(message.msgLength)
    buffer.writeUint8(message.encoding)
    buffer.writeUint8(message.reserved)
    buffer.append(message.payLoad)
    return buffer
}