Chr*_*her 10 .net mobile networking
我正在重新设计一个我继承的应用程序,它将数码照片从笔记本电脑发送到网络服务器.我们的想法是"在场上拍照"并将它们立即发布在网页上(有一些更奇特的功能).
典型场景
1.使用标准USB将照片从相机传输到笔记本电脑.
2.照片以各种方式处理.(不重要)
3.使用webrequest将每张照片以小块(每个约64 kb)张贴到标准Apache Web服务器,然后再将它们合并在一起.
当前设计的问题在于,当网络连接不可靠时,它经常挂起.由于我们正在使用移动网络(3G)并且通常最终没有覆盖,我需要一种方法来正确处理这个问题.
我的问题是,是否有一个更好的解决方案来做这个,当连接不时下降时,不会使应用程序挂起.
(额外的问题是如何在不用笔记本电脑远足的情况下对其进行适当的单元测试.)
编辑2008-11-24:我现在设法使用NetLimiter和TMnetsim(免费软件)的组合为此设置适当的测试环境.我尝试设置5 kb /秒并丢弃所有数据包的1% - 我的应用程序仍适用于新设计.
编辑2008-12-11:只是为了更新我是如何做到这一点的.我创建了一个后台工作程序(如下所示),只要检测到摄像机将照片从相机复制到PC,就会启动它.然后我在文件到达PC时使用异步HTTP传输上传的另一个后台工作者.确保一切正确无疑是一种痛苦,特别是因为操作在任何时候都应该是"可取消的"......但无论如何,现在它起作用了.非常感谢帮助我的每个人!
我会避免在任何具有 UI 的线程中使用 HTTP,除非您实际上想要阻塞直到收到响应。您可以尝试在后台线程中使用相同的逻辑,该线程将根据需要运行。只需确保具有能够检测连接何时丢失(可能是由于超时)的逻辑,并定期(但不频繁)间隔重试,直到再次连接。
您最好的选择是创建某种后台工作进程,一旦照片保存到设备上的保管箱目录中,该进程就会上传照片。但我要说的是,创建基于 .NET 的后台进程并非易事。
| 归档时间: |
|
| 查看次数: |
500 次 |
| 最近记录: |