Server 与 Service 的区别

hprose 的服务器端的实现,分为 ServiceServer 两部分。

其中 Service 部分是核心功能,包括接收请求,处理请求,服务调用,返回应答等整个服务的处理流程。

Server 则主要负责启动和关闭服务器,它包括设置服务地址和端口,设置服务器启动选项,启动服务器,接收来自客户端的连接然后传给 Service 进行处理。

hprose 没有为 HTTP/HTTPS 和 WebSocket 服务提供 Server 实现,只提供了 Service 实现。

因为使用 Service 可以更方便、更灵活的跟已有的库和框架结合,例如:net/http、fasthttp、gin、echo、iris 等。这些库和框架都提供了丰富的中间件,在这种情况下,只需要把 Service 作为这些库和框架的中间件来使用就可以了,在这种情况下,我们就不需要使用 Server 了。

对于 TCP 和 UnixSocket 服务,hprose 提供了一个默认的 Server 实现。当开发者没有什么特殊需求,只是希望启动一个独立的 hprose 服务器时,那使用 Server 就是一个最方便的选择了。

Server 部分的实现是很简单的,如果开发者希望把 hprose 服务结合到自己的某个服务器中去,而不是作为一个单独的服务器来运行,在这种情况下,直接使用 Service 就可以了。