1

我需要通过非常规的慢速、低带宽、抖动连接发送带有元数据的二进制有效负载,该连接基本上可以像第 3 层及以上的任何其他正常连接一样处理。我希望二进制有效负载不超过 512kb,但可能会只有16kb左右。我的客户端正在运行 .NET Compact Framework,而我的服务器可以运行普通的 .NET Framework。

我正在寻找一种方法或库,以随机间隔的间隔(始终处于连接状态)连续地在流(特别是 SslStream 或其他等效项)上序列化和传输对象,并具有大量冗余,基本上是消息队列。我查看了各种 XML、SOAP、JSON、protobuf 实现和 WCF,但有些不兼容、太重、没有足够高的冗余或文档很差。

我愿意自己写一些东西或移植一些东西,但是有一些东西可以工作并得到一些想法会非常有帮助。

4

2 回答 2

0

我会试用 MSMQ。.Net CF 和所有 MS 服务器平台都支持它:

http://msdn.microsoft.com/en-us/library/ms229665%28v=VS.90%29.aspx

我没有在“不可靠”的连接上使用它,但它支持事务队列和可靠的传递,这就是为什么它听起来像你想要的。在这个特定的空间里,你真的不想去发明一些东西来达到目的或重新利用其他东西,因为很难做到正确。我认为 WCF 也支持 Net CF 上的 MSMQ 传输,这将提供一个干净的消息传递抽象来使用。

所以澄清一下,如果支持的话,WCF 和 MSMQ 传输。

然而,在您描述的场景下评估和测试它的关键是,因为没有什么是 100% 完美的。

于 2011-08-08T08:34:32.600 回答
0

我发现了一个叫做NetSockets的东西,它有一些错误,但它很简单、小、多线程,我可以将其更改为使用我想要的流、数据对象和序列化程序并将其移植到我的客户端。我的答案是在该实现的 NetBasePayloadStream、NetBaseStream 和 NetObjectStream 类中。

于 2011-08-08T08:16:20.320 回答