串行端口设备的Web服务

时间:2010-04-12 07:39:05

标签: c# linux mono

我想为应用程序创建一个远程Web服务,现在只能在本地使用。此应用程序控制连接在串行端口上的三个设备(每个设备单独控制)。问题是我不知道如何处理设备返回请求数据的信息。例如 - 我将移动命令发送到运动设备(这非常慢,可能需要一分钟或更长时间)。我可以在客户端(和服务器端)设置一个大的超时,如果操作完成则返回例如true / false,这是个坏主意吗?具有大超时的SOAP是否可以? 另一个问题是Linux上的Mono(Ubuntu 9.10,Mono 2.4)是否可以用于制作Web服务,还是应该选择Java或其他语言?

我愿意接受推荐。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

使用大超时不是一个好主意。它浪费了服务器和客户端上的资源,当服务器不可用时,例如在分配的超时到期之前,您将无法检测到“真正的”超时条件。

你真的有两种选择。首先是使用民意调查。立即从动作请求命令返回,确认命令的接收(而不是完成命令)。然后定期发送请求,询问命令是否完成。

另一种选择要求客户端能够注册回调端点,服务器将在动作完成时调用该端点。这使整个过程异步,但要求客户端能够以服务器模式运行。使用WCF非常容易 - 但我不知道Mono中是否提供此功能。

答案 1 :(得分:0)

与您的问题没有直接关系......,但请考虑com0com及其朋友hub4comcom2tcp