WCF架构问题

时间:2011-02-01 12:31:36

标签: wcf

我有以下情况:

WCF主机服务器< - 网络连接到 - > WCF LAPTOP客户端< - 连接到 - > WCF客户端2

我在WCF HOST SERVER所在的服务器上也有一个WCF HOST CLIENT,它有一个UI。此客户端调用HOST SERVER上的服务。

我已连接WCF主机客户端以列出已连接的WCF LAPTOP客户端; 我使用了双工连接,这样如果我双击其中一个连接的笔记本电脑客户端,双工通道就会用来与选定的WCF笔记本电脑客户端进行通信。

但是我需要将大型数据文件流回WCF LAPTOP客户端,而不是字符串消息。我无法使用回调通道进行流式传输,因为双工不允许流式传输。

注意:我必须根据要求使用NetTcpBinding。

所有WCF LAPTOP客户端都使用相同的IP和PORT。

所以问题是如何在WCF HOST CLIENT UI上选择连接的笔记本电脑,并将流对象发送回选定的laptlop?由于回调通道知道笔记本电脑在哪里,我能以某种方式使用该信息打开一个新的wcf连接(或新的套接字连接)到该特定的笔记本电脑?我使用guid在WCF HOST CLIENT上注册每台笔记本电脑,并使用它来确定哪个WCF LAPTOP客户端发回字符串消息。

我做了什么: 我尝试在WCF LAPTOP客户端使用回调消息来从HOST SERVER调用不同的服务;这工作并从主机服务器返回一个字符串消息到特定的LAPTOP客户端,但我无法发回字节数据,因为我收到合同不匹配错误。

我必须做的是从服务器向笔记本电脑发送一个大文件,然后将该文件转发到WCF CLIENT 2,它只连接到笔记本电脑而不是网络。 WCF CLIENT 2实际上是一个带有XP的小盒子。除非我知道要将文件发送到哪台笔记本电脑,否则所有笔记本电脑都会收到它,我只需要选择的笔记本电脑接收文件然后将其转发到其连接的盒子。我正在使用套接字连接在笔记本电脑和盒子之间进行转发。

任何见解或帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是在服务器端托管另一个允许流式传输的服务。只需通过双工通道向笔记本电脑发送一条消息,其中包含位置和某种标识符,即可使用其他服务进行下载。