我应该实现一个为某些客户端提供服务的应用程序,同时与其他远程服务进行通信。换句话说,此应用程序应该是其客户端的服务器,但它也应该是远程服务的客户端。我应该使用NetTcpBinding和回调来进行远程服务的通信以及与客户的通信:
这两种类型的通信应该在不同的线程上开发,但需要同时访问(读取和写入)共享数据:例如,当应用程序从客户端接收数据时,它应该“重定向”其中一些数据一些远程服务。
我可以在两个独立的线程中实现应用程序的两个方面,并使用一个或多个单例对象来共享从客户端或远程服务接收的公共数据。我可以使用共享Queue<T>
作为单例对象(其中T
是从远程服务或客户端接收的数据类型):这样,当我的服务应用程序从客户端接收数据时,它将将收到的数据排入队列;类似地,当它从远程服务接收数据时,将它们放在同一队列中;最后,读取排队的数据:一些数据被发送到远程服务,而其他数据被发送到客户端。
Queue<T>
共享对象。ServiceHost
的线程。另一个线程,用于实例化远程服务ServiceHost
的代理。
你能告诉我互联网上有哪些完整的例子吗?