您的位置:首页 > 其它

So far as I know -- Part I: Sending a wap push message via SMPP/CMPP(下)

2005-06-21 12:27 302 查看
我记得上一次写的时候,我说了这么一段话:
不幸的是,我遇到的情况是“既成功也不成功,一会儿成功一会儿不成功,这个手机成功那个手机不成功,这个Sim卡成功那个Sim卡不成功……”。

这是什么意思呢?首先说说既成功也不成功,那是因为我在经过一段比较长的时间之后,终于能够成功Login网关,并且能够发送普通的消息了,然而发送WapPush的短消息却一直没有成功。后来发现原来仅仅设置Msg_Fmt为4(Binary/二进制)并不足够,还需要设置TP_udhi为1——发送正常短消息的时候设置的是0,至于说TP_udhi是什么意思一直没有考究出来。其实在开发过程中蛮痛苦的,因为我们刚开始的时候,这几个设置就分别是4和1,但是因为其它的一些地方设置不经意动过了,结果Login的时候就已经有问题了,而我却一直不知道。最后是让机房的工程师给帮忙截获一下网关上的状态才发现问题的,而试验机房的设备比较奇特,有很多的时候其实有错误的时候,试验网关也不返回错误代码,而是返回正确,这造成了调试难度的增加。

当这个问题解决之后,紧接着就遇到一会儿成功一会儿不成功的问题了。当正确设置了所有的参数,并成功发送了一条WapPush短信的时候,我们心里面欢呼了一下。当然,程序员的谨慎使得我们自觉地多做了一次测试。这个测试不做不要紧,一做就出事了:一条只是内容不一样的WapPush竟然完全收不到!而且这个时候还发现,从这个时候开始,只要是使用实验室提供的手机就一定能够收到,而如果用我们准备在项目中使用的手机,就没有一个能够收到的!这个事情实际上一直到离开实验室之后一段时间才搞清楚问题的根源,其根源在于WapPush的访问地址如果完全相同,那么某种手机就只能够接收到第一条!(请原谅我不会说出具体的品牌型号,如果你也在做同样的事情,那么知道有可能有的手机会出现这一类型的情况就已经足够了。)

事实上从此开始,整个问题开始变得异常复杂。尤其是某种特定类型的手机,其不同的型号会有不同的结果——其中型号A只能够接收访问地址相同的第一条WapPush,而型号B则干脆什么也收不到。遇到这一问题的时候,我的压力是非常大的,光是代码就彻底的检查3次,每一次都找不到任何线索。虽然我一直怀疑这个问题跟手机有很大的关系,但是对方相关的一些其他部门(包括不在大陆地区的),却一直没有办法很好的沟通顺畅,一直怀疑我这边代码的问题。最后过了有1个多月之后,对方经过测试之后才确认是其它问题造成了这些型号B(以及类似型号)根本就不可能接受到这种WapPush消息!那个时候心里挺高兴的,因为之前一直被对方怀疑,心里面当然不好受。不过多方一起做项目就是这个样子,总免不了责任推委的情况,而且不要以为这只有中国公司才会这样,事实上这种问题可以在任何类型的公司内部出现。

不过话也说回来了,这反过来说明类型B的手机是非常“优秀”的手机!因为这种手机不会受到无聊的垃圾WapPush的骚扰,就如同我仍然在使用的、3年前买的、土得掉渣的手机、根本就连WapPush为何物都不清楚的手机,我就认为非常“优秀”:D 哪天要是连垃圾短信也不会收到就太好了!

这一件事情已经快过去半年了,之前在写上集的时候确实是想着在这方面探讨一下。因为确实发现整个事情非常怪异,我也怀疑有可能是WapPush包格式不正确。可是现在问题并不出在这个WapPush包里面,因此就不方便进行深入的讨论了。以后真不太希望弄WapPush,尤其是在资料质量差、沟通不是很顺畅的情况下,要展开工作有太多事情需要自己去做,实在是非常郁闷。(补充一句:当时的项目组内部沟通是非常良好的,但是因为出现的问题已经超过项目组所能解决的范围了,所以只好到层次更加深入的地方去寻求支持,恰恰是这里出现了我认为非常大的问题,造成了我们不必要的困扰和等待。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: