客户端与服务器通过服务器发布的service进行交互。
1、服务器端:
service为了能够与客户端进行交互,必须宿主在一个ServiceHost进程中,而EndPoint是服务对外的接口,如果有客户来访问这个server的话,通过访问EndPoint来和服务器进行交互。举个比较形象的例子:好比server是一个公司,serviceHost是一个公司部门,而service是公司的技术人员,对客户提供服务,EndPoint好比是公司的前台,专门接待和处理客户的访问,并把客户的Request提交给Service进行处理。
2、客户端:
客户进程中的ClientApp通过Proxy和服务器进行通信,但Proxy不是直接和服务器进行通信,而是通过Proxy的EndPoint和服务器的Endpoint进行通信,如图所示,即消息的直接通信是靠EndPoint。
3、消息传递的流程:
消息传递的工作流程就是通过Proxy封装App的Request,然后通过Endpoint发送到服务器端,服务器端相应的Endpoint接收客户端发来的请求然后提交给相应的Service进行处理,处理完成后原路返回,通过Proxy拆包给APP进行解析结果。