短信的发送设计
2017-02-20 16:21:36 0 举报
短信的发送设计主要包括以下几个步骤:首先,用户在界面上输入要发送的文本信息,可以选择添加附件或者插入表情等。然后,系统将用户的信息进行编码,转化为可以在网络中传输的数据。接着,系统通过与短信服务商的接口,将这些数据发送到指定的手机号码。短信服务商会将这些数据解码,并通过网络发送到接收者的手机上。接收者的手机收到信息后,会进行解码,然后在屏幕上显示出来。在整个过程中,系统还会对发送的信息进行记录,以便于用户查看和追踪。此外,为了保证信息的安全,系统还会对发送的信息进行加密处理。
作者其他创作
大纲/内容
等待返回满足,并记录异常
返回对应错误
客户通道
选择通道
通道
通道组合与通道都需要与客户对应起来。可以想到的简单解决方法:1、抽象出一个通道对象,让通道与通道组合继承自这个对象;2、抽象出一接口,使通道与通道组合都实现这个接口的方法
通道组合
回复对应的客户,推送状态报告
锁定队列
将返回的msgId与作为服务端的msgId对应起来(发送成功后的回调)
记录异常,并进入入库异常队列
客户类
更新数据库状态,更新缓存数据
根据剩余空间pull对应数量的消息
进入通道的发送队列(考虑是否使用单独的Topic)
msgId对应关系等
短信交互实体
是否有对应通道或通道组
记录问题(因为没有发出去),并等待1s
短信实体
是否满足发送条件
事务成功
是否发送成功
是否通过验证(短信白名单与黑名单,敏感词,客户发送是否超过次数)
通道的抽象
短信进行验证
客户
通道接口,获取通道的各类属性以及通道集合
返回满足
存在一个通道集合
通道实体
实际拉取到的消息数量是否大于0
等待,重发
记录异常,并进入发送失败的处理流程
发送,并异步等待回复
消息窗口是否存在空间
入回复客户队列
pull消息
接收一条短信,发送到初步处理通道
运营商返回数据
是否存在对应的msgId
事务:入库,入缓存
收藏
0 条评论
回复 删除
下一页