MessageType() 공개 정적인 메소드

public static MessageType ( IExtensible mumbleProto ) : MessageTypes
mumbleProto IExtensible
리턴 MessageTypes
예제 #1
0
        private void MumbleWrite(IExtensible message)
        {
            if (!_connected)
            {
                return;
            }

            var sslStreamWriter = new BinaryWriter(_sslStream);

            if (message is UdpTunnel tunnel)
            {
                var audioMessage = tunnel;

                Int16 messageType = (Int16)MumbleProtocolFactory.MessageType(tunnel);
                Int32 messageSize = audioMessage.packet.Length;

                sslStreamWriter.Write(IPAddress.HostToNetworkOrder(messageType));
                sslStreamWriter.Write(IPAddress.HostToNetworkOrder(messageSize));
                sslStreamWriter.Write(audioMessage.packet);
            }
            else
            {
                MemoryStream messageStream = new MemoryStream();
                Serializer.NonGeneric.Serialize(messageStream, message);

                Int16 messageType = (Int16)MumbleProtocolFactory.MessageType(message);
                Int32 messageSize = (Int32)messageStream.Length;

                sslStreamWriter.Write(IPAddress.HostToNetworkOrder(messageType));
                sslStreamWriter.Write(IPAddress.HostToNetworkOrder(messageSize));
                messageStream.Position = 0;
                sslStreamWriter.Write(messageStream.ToArray());
            }
            sslStreamWriter.Flush();
        }