穿墙聊天的一些想法

上班好几日了,终于开始无聊想找人聊天。然而不如HSBC幸运,我们这边连个内部Sametime都没有,其实Sametime是我所在Team的下一项task啦,包含在Lotus系统升级之内。基本上还是路漫漫其修远兮,所以暂时想想其他的聊天方案还是有必要的~

首先分析公司的网络环境,那些不能聊天的公司,网络环境基本都是这样的:内部局域网,不需拨号,默认通过http proxy访问外网,也会有https,也就是说可以访问外面某些服务器的port 80和443。proxy一般还有不同程度的filter,基本上都不会让你上web messenger、gtalk、meebo之类的网站了……

这么看来想要用聊天工具还是有一定的难度,然而也不是完全没有想法。我一开始就想到了jabber,或者说XMPP。XMPP是开放而标准的协议,兼容性好,而且用的是TCP,虽然port是5222,但是应该也有一些server是同时支持80的,通过http proxy说不定就能用了。自然而然,我找到了jabber80.com,这个server同时bind到了5222和80,然而很不幸,我一直没有在这里试验成功过……

不断努力之下,我最后又找到了jabber.org.au,他们把server bind到了443上,也就是https的port,但是没有用ssl/tls加密,不管怎样,我用pidgin成功的登录了。幸运的是,这个jabber.org.au可以和gtalk互通,我只要不言弃放地再加一次gtalk好友应该就能用了。可惜的是,这边的msn transparent关掉了,要不然还能和msn上的好友聊,穿墙聊天就真的解决了~

既然方案不完美,我还是继续寻找。偶然发现pidgin的一个facebook插件,可以和facebook上的好友聊,而且默认就是http的,所以只需正常设好proxy就行,也不需要重新加好友,用自己的facebook id登录即可,好友自然会出现~然而又很可惜,我的facebook上面似乎没有什么好友……

最后找到的是校内,令人惊异的发现,我原以为极不开放的校内,竟然的也是XMPP协议……大概是自己做开发成本太高了吧~不过有点小小麻烦,校内的XMPP不支持跨站,于是我就不能从jabber.org.au直接加校内好友了。而校内的server用的是默认5222 的port,似乎也不能直接用http proxy访问到,于是这又成了一个问题。最后的想法是,用apache的mod做校内的reverse proxy试试,把5222弄到某个80上来,今天晚上回去实验啦~如果成功的话,明天开始就可以用pidgin和校内上的好友尽情聊天了~同时这个方法应该也是可以推广吧……我真邪恶。

Updated@July 8, 2008 at 22:40 pm
回来后想想才知道自己傻逼了,XMPP虽然是用的XML,纯文本,但是本身不基于http,所以reverse proxy是搞不定的,所以我们暂时是不能用校内来聊天啦~

  • 自己动手,丰衣足食~
    我们自己来开发~~