一个回车引发的几夜不眠
2014-06-20 09:43
99 查看
角色
asmack-android-8-4.0.0.jarOpenfire 3.9.1
PHP 5.3.28 (cli) (built: Dec 15 2013 17:43:05)
android 4.1
剧情
某日,某同学需要在android上开发一个IM聊天室应用,采用了 asmack←XMPP协议→openfire 的组合。加入聊天室需要一个昵称和头像才有资格进去,为了达到目的,该同学把昵称和头像组合起来作为一个身份进入聊天室,聊天室内展示该身份时,再将昵称和头像分开。举例来说,“XX:OO"这个身份是由昵称“XX”和头像“OO”组成的。由于该同学脑筋异常,昵称XX非要从服务器获取不可,于是他特意用PHP写了个网页,专门用来返回昵称。他的PHP是这样写的:
<?php echo 'XX'; ?>
于是当他访问这个网页的时候,返回了
XX ·
再于是,经过昼夜编码,android可以登陆聊天室了。但是很奇怪的,每次加入聊天室都会得到一个NoResponse的异常。这位同学检查了各种可能,甚至包括XMPP是否运行在安全模式下。
最终在排查报文时,偶然发现打印的日志是这样的
D/SMACK(6274): SENT (0): <presence id='jRtGU-4' to='199@conference.im/OO D/SMACK(6274): :XX'><x xmlns="http://jabber.org/protocol/muc"></x></presence> D/SMACK(6481): RCV (0): <presence id="jRtGU-4" to="d1c6b13a@imhere/d1c6b13a" from="210@conference.im/OO :XX"><x xmlns="http://jabber.org/protocol/muc#user"><item jid="d1c6b13a@imhere/d1c6b13a" affiliation="none" role="participant"/></x></presence>
几秒后又是一个异常:
就是说,服务器把
XX :OO
变成了
OO :XX
但是居然还能正常发送和接收聊天室的消息。
该同学把获取OO的服务器代码改成了
<?php echo 'XX'; exit(); ?>
额..终于可以消灭NoResponse异常了..
剧终
很囧是不是,我也这样觉得...哈哈相关文章推荐
- 一个回车引发的Bug
- 当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系
- 一个“笑话”引发的思考
- 类型不匹配引发的一个issue
- 一个关于C++ Inline关键字的引发的一个错误
- 一个“Spring轮子”引发的“血案”(5)
- asp分页显示时单引号引发的一个错误!
- 一个“Spring轮子”引发的“血案”(6)
- 一个馒头引发的多种吃法
- 一个“Spring轮子”引发的“血案”(2)
- 一个“Spring轮子”引发的“血案”(4)
- 发现 ASP.Net 的一个关于"回车提交"的 Bug ? 必须多于一个 Text 域"回车提交",Server: ButtonX_Click 才能截获!
- 恶搞影片:一个馒头引发的血案!(搞翻无级)本片与现实生活如有雷同,纯属三生有幸,作者请客吃饭。
- 一个馒头引发的血案的精彩评论
- 一个馒头引发的麻烦
- 一个馒头引发的血案 --enjoy
- 发现 ASP.Net 的一个关于"回车提交"的 Bug ? 必须多于一个 Text 域"回车提交",Server: ButtonX_Click 才能截获!
- 一个馒头引发的血案...请看完无极后观看此片,保笑死人不偿命
- JDBMonitor日志输出探究(做executeBatch时发现一个BUG所引发的)
- 纠错一个Python程序引发的讨论