我需要通过非传统的慢速,低带宽,抖动的连接发送带有元数据的二进制有效负载,这基本上可以像处理第3层及其以上的任何其他正常连接一样对待。我希望二进制有效负载不超过512kb但可能只有16kb左右。 我的客户端正在运行.NET Compact Framework,我的服务器可以运行正常的.NET Framework。
我正在寻找一种方法或库,通过流(特别是SslStream或某些等价物)以随机间隔(始终在连接上)连续地序列化和传输对象,具有大量冗余,基本上是消息队列。 我查看了各种XML,SOAP,JSON,protobuf实现和WCF,但有些不兼容,太重,没有足够高的冗余或文档很差。
我愿意自己写点东西或者移植一些东西,但是有一些东西可以工作并获得一些想法会非常有帮助。
答案 0 :(得分:0)
我发现了一些名为NetSockets的东西,它有一些错误,但它很简单,小巧,多线程,我可以改变它以使用我想要的流,数据对象和序列化程序并将其移植到我的客户。我的答案是在该实现的NetBasePayloadStream,NetBaseStream和NetObjectStream类中。
答案 1 :(得分:0)
我试用了MSMQ。它支持.Net CF和所有MS服务器平台:
http://msdn.microsoft.com/en-us/library/ms229665%28v=VS.90%29.aspx
我没有在“不可靠”的连接上使用它,但它支持事务性队列和可靠的传输,这就是为什么它听起来像你想要的。在这个特定的空间里,你真的不想为了这个目的而去创造一些东西或者重新利用别的东西,因为要把它弄好是非常困难的。我认为WCF也支持Net CF上的MSMQ传输,这样可以提供干净的消息传递抽象。
所以要澄清一下,WCF与MSMQ传输,如果它是支持的。
在这里,关键是在你描述的场景中评估和测试它,因为没有什么是完美的。