在双向通信中,WCF中的MSMQ可以处理客户端的防火墙问题吗?

我打算在客户端和服务器之间使用MSMQ进行双向通信。 客户端将是一个托管在Window服务中的WCF,并通过Internet与服务器通信。 显然我无法控制客户端的防火墙,代理,NAT,

所以我想知道设置MSMQ netMsmqBinding的正确方法是什么?

现在我的intiial测试我在同一台PC上运行服务器和客户端,我正在设置绑定如下

           

但我感觉这在通过互联网部署时不起作用,因为“localhost”不会转换为机器地址(更不用担心NAT转换)而且该端口,ICMP流量可能被客户端防火墙阻止。

处理这个问题的正确方法是什么? 我看到了公共和私人队列,我们​​必须设置。但我不知道我是否在服务器上为消息队列设置公共队列然后它将工作与否。

所以只要告诉我什么时候win表格wcf客户端应用程序将运行然后如何打开我的自定义端口,如“6667”,并指导我什么库或我应该使用什么方法作为结果响应应该来自客户端路由器到PC和防火墙不会阻止任何事情。 请用现实生活场景讨论这个问题,人们如何处理现实生活中的这种情况。

注意:如果您对服务器和客户端之间的双向通信有任何其他想法,请告诉我

谢谢

MSMQ用于单向通信。 一个进程将项目发送到队列,另一个进程读取它们。

您可以通过拥有两个队列来解决它,一个是客户端写入和服务器读取的,另一个是服务器写入并且客户端读取的。 但是当有多个客户端时会出现问题,但是有很多方法,例如每个客户端的队列。

我认为更好的解决方案是使用为双向通信而构建的SignalR,请查看: http : //www.asp.net/signalr