public static void WriteMessage()

in sdk/clients/protobuf-client/csharp/src/WebPubSubProtobufProtocolHelper.cs [79:122]


    public static void WriteMessage(WebPubSubMessage message, IBufferWriter<byte> output)
    {
        switch (message)
        {
            case SequenceAckMessage sequenceAck:
                new UpstreamMessage { SequenceAckMessage = new UpstreamMessage.Types.SequenceAckMessage { SequenceId = sequenceAck.SequenceId } }.WriteTo(output);
                break;

            case JoinGroupMessage joinGroupMessage:
                var joinGroup = new UpstreamMessage.Types.JoinGroupMessage { Group = joinGroupMessage.Group };
                if (joinGroupMessage.AckId.HasValue)
                {
                    joinGroup.AckId = joinGroupMessage.AckId.Value;
                }
                new UpstreamMessage { JoinGroupMessage = joinGroup}.WriteTo(output);
                break;
            case LeaveGroupMessage leaveGroupMessage:
                var leaveGroup = new UpstreamMessage.Types.LeaveGroupMessage { Group = leaveGroupMessage.Group };
                if (leaveGroupMessage.AckId.HasValue)
                {
                    leaveGroup.AckId = leaveGroupMessage.AckId.Value;
                }
                new UpstreamMessage { LeaveGroupMessage = leaveGroup}.WriteTo(output);
                break;
            case SendToGroupMessage sendToGroupMessage:
                var groupMessage = new UpstreamMessage.Types.SendToGroupMessage { Group = sendToGroupMessage.Group, NoEcho = sendToGroupMessage.NoEcho };
                if (sendToGroupMessage.AckId.HasValue)
                {
                    groupMessage.AckId = sendToGroupMessage.AckId.Value;
                }
                groupMessage.Data = WriteData(sendToGroupMessage.DataType, sendToGroupMessage.Data);
                new UpstreamMessage {  SendToGroupMessage= groupMessage}.WriteTo(output);
                break;
            case SendEventMessage sendEventMessage:
                var eventMessage = new UpstreamMessage.Types.EventMessage { Event = sendEventMessage.EventName};
                if (sendEventMessage.AckId.HasValue)
                {
                    eventMessage.AckId = sendEventMessage.AckId.Value;
                }
                eventMessage.Data = WriteData(sendEventMessage.DataType, sendEventMessage.Data);
                new UpstreamMessage { EventMessage = eventMessage }.WriteTo(output);
                break;
        }
    }