整体设计
前面我们介绍了服务端,对接收到的消息,无论是请求消息还是响应消息,我们都是将消息主题传入工厂,构建对应的处理器进行处理。
同理,对于发送的消息,我们也可以采用相同的处理模式。
这里面有个问题需要思考,发送器与消息的关系是什么?
发送器相当于业务消息的封装,消息的参数是通过发送器属性设置,还是调用发送方法时作为方法参数处理?
实际上,这两种方式都能实现我们的目的,具体分析如下:
对于发送器对应的消息主题,我们希望具体的发送器直接内置固化,不能交由外部传入,否则会造成混乱,因此使用构造参数的方法来设置。
对于消息标识,有两种场景,一是消息新创建的时候,这时候消息标识直接使用请求消息构造方法中生成的标识即可,二是消息重发,这时候,我们需要读取原有的消息标识,即重发过程中保持消息标识不变,这样服务端才能根据消息标识去重。因此消息标识这个参数可以在调用方法时传入。
对于消息内容,同样有两种情况,一种是对应业务事件,包括标识、事件,另外一种,则对应技术框架部分的操作,如登录,需要将账号和密钥构建一个json对象传入。
综上考虑,