Я использую protobuf-net для передачи данных о состоянии объекта стандартным способом protobuf-net.
Я сериализовал объект, получил массив byte [], зашифровал массив и отправилэто через UDP.Затем клиент получает массив byte [], расшифровывает и десериализует объект, и все работает замечательно.
Мне нравится делать это таким образом, потому что у нас может быть несколько терминалов для просмотра данных, которые не всегда могут быть лучшими илисамое надежное соединение.
Теперь мне нужно добавить несколько механизмов RPC.Я бы очень хотел использовать такой же набор функций (сериализовать, шифровать и перебрасывать через UDP).
У меня уже есть интерфейс, и к нему подключены WCF и XML-RPC.Я смотрел на использование protobuf-net в качестве конечной точки WCF, и я не слишком уверен, что это то, что я ищу.Мне бы очень хотелось иметь возможность обернуть все в схему шифрования, которая у меня уже есть, и использовать много другого кода.
Я посмотрел основные примеры http RPC в protobuf-net и получилискал способ получить байт [] для использования RPC.Я был бы готов написать хороший кусок кода;Я просто не знаю, с чего начать.
Есть идеи?
edit:
Так вот как я обычно отправляю свое сообщение о статусе.Это всего лишь некоторые переменные, сериализованные с protobuf-net
ProtoBuf.Serializer.SerializeWithLengthPrefix(mStream, Common.Share, ProtoBuf.PrefixStyle.Fixed32);
byte[] ptext2 = RNGBytes.Concat(mStream.ToArray()).ToArray();
byte[] plainTextBytes = Encoding.UTF8.GetBytes(Convert.ToBase64String(RNGBytes) + plainText);
cryptoStream.Write(ptext2, 0, ptext2.Length);
// Finish encrypting.
cryptoStream.FlushFinalBlock();
// Now we're done with the memory stream, let's turn it back into an array of bytes.
byte[] cipherTextBytes = memoryStream.ToArray();
foreach (IPEndPoint iep in BroadcastToIPs)
{
U.Send(cryptoStream.GetBuffer(), (int)mStream.Length, iep);
}
// Close both streams.
memoryStream.Close();
cryptoStream.Close();
Теперь у меня есть интерфейс, что-то вроде
public interface
{
void SetMovementMode(int Axis, int Mode);
.....
}
У кого-нибудь есть идеи о том, какзаверните его и отправьте аналогичным образом, с возможностью шифрования и т. д.?