
Connect Message Flow에 맞게 Client로부터 Command Message가 오면 Client에게 Window Acknowledgement Size와 Set Peer Bandwidth Protocol Message를 전송합니다.
function writePacket(socket: net.Socket, streamId: number, messageTypeId: number, payload: Buffer) {
const basicHeader = Buffer.alloc(1);
basicHeader.writeIntLE(streamId, 0, 1);
const messageHeader = Buffer.alloc(11);
messageHeader.writeIntBE(payload.length, 3, 3); // message length 설정
messageHeader.writeIntBE(messageTypeId, 6, 1); // message type id 설정
socket.write(Buffer.concat([basicHeader, messageHeader, payload]));
}
function connect(socket: net.Socket) {
const windowAckSizePayload = Buffer.alloc(4);
windowAckSizePayload.writeIntBE(5000000, 0, 4);
writePacket(socket, 2, 5, windowAckSizePayload);
const setPeerBandwidthPayload = Buffer.alloc(5);
setPeerBandwidthPayload.writeIntBE(5000000, 0, 4);
setPeerBandwidthPayload.writeIntBE(2, 4, 1);
writePacket(socket, 2, 6, setPeerBandwidthPayload);
const setChunkSizePayload = Buffer.alloc(4);
setChunkSizePayload.writeIntBE(4096, 0, 4);
writePacket(socket, 2, 1, setChunkSizePayload);
const responsePayload = encodeAmf0Cmd(RESULT_COMMAND_MESSAGE);
writePacket(socket, 3, 20, responsePayload);
return true;
}
Connect 과정에서는
Window Acknowledgement Size를 보낸다.Set Peer Bandwidth를 보낸다.Set Chunk Size를 보낸다.Result Response Message를 보낸다.