联通短信网关采用的协议为SGIP协议,为Socket短链接!
1、本地作为客户端,联通作为服务器,推送消息。
2、本地作为服务端,联通作为客户端,接收消息。
(1)、发送流程:
推送的消息分为,消息头与消息体。
消息头说明:
Message Length -长度4 -消息的总长度(字节)
Command ID-长度4-命令ID
Sequence Number-长度4-序列号
1、建立链接
首先与联通服务端建立链接,Command ID类型为:SGIP_BIND=0x1
Sequence Number序列号为:原节点+时间戳+序列(原节点为接入省份的区号,时间戳形式为MMddHHmmss,序列号为自定义数字长度为6位)
消息体Login Type为1,Login Name为登录帐号,Login Passowrd为登录密码,Reserve为空即可
将所有消息内容按照长度组合成byte[]数组包,然后Send过去,服务器端反馈登录结果byte[]数据包,针对协议文档拆分数据包,0表示链接成功,可以进行下一步操作。
2、组合短信消息包发送
组合消息头,与建立链接形式相同,Command ID类型改为:SGIP_SUBMIT = 0x3
消息体按照协议中的Submit中的各字段进行组包,将消息头与消息体组合为一个包,然后Send过去,服务器端反馈登录结果byte[]数据包,针对协议文档拆分数据包,0表示联通网关接收数据成功。
3、断开链接
消息发送完毕后,即可断开链接,组合消息头,Command ID类型改为:SGIP_UNBIND = 0x2,断开链接没有消息体,定义消息头即可,然后Send过去,服务器端反馈登录结果byte[]数据包,针对协议文档拆分数据包,反馈的消息包没有消息体只有消息头!
一个发送流程完毕!
待续状态报告接收、MO上行!
有兴趣的可联系大家共同交流QQ:24646448