【发布时间】:2016-10-02 03:26:49
【问题描述】:
我想构建一个服务器,它能够处理 TCP、HTTP 和 Websockets 协议(不能同时处理),并且无论在运行时使用什么协议,它都能以相同的方式工作。
基本上我不会对每种类型的请求进行不同的处理,而是以某种方式制作一个通用请求对象和一个通用响应对象。
通过 TCP 和 Websocket 接收的消息将具有 http 请求的结构。
所有请求/消息都将类似于 REST。
为了不重复每个协议的路由/处理,我应该使用什么架构设计?
【问题讨论】:
-
很好。你有什么问题?无论如何,您不应该将您的业务逻辑绑定到特定的网络协议。看看微软的 WCF 是如何做到这一点的:使用“绑定”。绑定将“消息”转换为特定于协议的格式。
-
关于您的编辑,您能否再详细说明一下关于“路由/处理”的内容?
-
@CodeCaster 因为所有请求/消息都会“看起来”相同,我想使用相同的路由机制,进行一些处理,然后回复。
-
是的,我明白了。我不明白这个“路由”或“处理”的哪一部分你需要帮助,以及你需要什么帮助。我可以轻松地为您提供一个类似于其他人如何实现此功能的高级概述,但我不确定这是否会有所帮助。
-
基本上我想为通过 TCP 或 Websockets 接收的消息模拟经典的 http 路由。我不知道是否有这样的库或类似的东西,或者可以使用什么设计。
标签: http tcp architecture websocket server