该项目主页在https://code.google.com/archive/p/smgp/,可以使用VPN进去看看,该项目是开源的,根据SMGP3.0协议写的API,我们要用的话直接调用就好了,这里主要是讲下SMGP3.0的大概请求过程及API原理。

发送短信之前有个login操作,主要是验证客户端是否合法,注册成功之后即可与服务器进行收发短信,login请求也有个响应。一旦建立连接即把消息放入submit中,然后会有个消息长度判断,超过70字会进行拆分。

int msgCount = (int) (content.length / (140 - 6) + 1);//长短信拆分成多条发送,长短信是指超过70个汉字140个字节,减去6是因为每条分割的短信需要添加6位的协议头

  

 由于采用的是短链接的方式,SP发送短信结束后会发送exit包,拆除链接,短信二级网关会响应一个响应拆除包,然后正式断开链接,SP以接收者和收发者的身份登录,短信网关可以不等待上一个短信响应包,就发送下一个短信。由于短信网关和SP之间也是采用短连接方式,在一定时间内不转发消息包则短信网关给SP发exit包,SP响应拆除链接。