使用WCF而不是简单的TcpListener的动机
本文关键字:TcpListener 动机 简单 WCF 使用 | 更新日期: 2023-09-27 18:29:58
我需要实现一个在内部网络上工作的打印服务(android设备也是网络的一部分)。
它目前由接受连接请求(JSON格式)的TcpListener实现,当接收到请求时,其流将被读取为字符串,并使用JsonConvert
类进行反序列化。
我得到的印象是,对于大多数性能并不关键的操作,使用WCF应该比使用TcpListener更可取,但即使对于这样简单的场景,这是真的吗?
即使有了TcpListener,我所需要的只是获得请求流并对其进行反序列化,这似乎不会太麻烦,我是否仍然更喜欢WCF?
WCF允许您的代码专注于业务逻辑,而不是传输机制和序列化/反序列化。
现在,您只需要您的服务接受TCP连接,将接收到的JSON数据反序列化为对象,并将这些对象传递给业务逻辑。为了便于论证,您下一步决定添加第二个服务。您可以添加逻辑来解析HTTP标头,并选择要调用的适当业务方法。对于第二个服务,您还需要支持读取(HTTPGET)和写入(HTTPPOST)。过了一段时间,您意识到您正在编写一个自定义HTTP服务器。
假设一年后,您与另一家公司达成协议,该公司希望通过SOAP或使用消息队列或其他机制调用该服务。是否要重构代码?理论上,WCF允许您对公开新端点的配置文件进行更改。
WCF是一个复杂的野兽,学习起来并非易事。最近的版本增加了一些快捷方式,让我们的生活更轻松。对于一个简单的自托管JSON服务,设置起来并不难。以下是一些可以让你开始阅读的内容:
如何:在托管Windows服务中托管WCF服务
使用WCF创建REST服务,并使用jQuery