1

我计划构建一个基于 WCF 的应用程序,该应用程序将允许现场用户连接到调度中心,并能够在他们执行呼叫时获取他们呼叫的更新并从系统请求信息。

我正在寻找有关如何将客户端连接到服务器的建议。

我在想我会使用 NetTcpBinding。

但是我是使用回调结构还是只是在两个方向上建立一个 netTcpBiding 连接来维持连接?

任何时候我可能只有大约 100 人在线,并且会有一个调度中心更新或派出现场人员到客户站点。

我们将使用手机数据通过互联网传输数据,并使用名为 Netmotion 的产品让客户端计算机看起来像是设置在家庭网络上。

任何意见,将不胜感激。

4

2 回答 2

0

由于客户端不会一直在线,或者可能会出现连接中断(毕竟您使用的是移动数据),因此 TCP/IP 不是很可靠。

您可能会遇到中途连接故障以及各种其他连接问题。最重要的是,您必须对遇到的每种异常情况进行大量错误处理(并且您不会在开发过程中遇到所有这些情况)。

我假设客户端不是某种嵌入式设备,而是笔记本电脑(或从今年秋天开始的平板电脑:))。

因此,出于以下几个原因,我建议使用 WCF over MSMQ(事务性):

  • 可靠的通信和消息传递,0 数据丢失。如果您使队列具有事务性并利用分布式事务,这适用。
  • 未送达的消息会返回给您(在死信队列中),您可以进行日志记录、故障排除或将它们发回以进行进一步处理。
  • 通讯中断。发送消息时,客户端甚至不必在线。它们只是在本地 MSMQ 中排队,并在客户端联机时转发到它们的目的地。同样适用于服务器。

这将适合您的情况,因为据我所知,您实际上并不需要双向通信。调度中心发送工单,由客户端接收(在线时),客户端对其进行处理,然后将状态发送回服务器。

In any case, you should model your messages in such a way they contain only mandatory metadata, easy to send over the air.

An easy sample of WCF client sending over MSMQ is here.

于 2012-07-02T19:20:32.103 回答
0

Check out this design pattern for the publish/subscribe model.

MSDN publish subscribe pattern

于 2012-07-02T19:25:03.500 回答