网页推送

忍不住给自己写了一套推送,用来处理一些社交网络的通知。用网页实现,免(写)客户端。
介于手机上能用的只有浏览器,最常用的还是IE,我选择了用PHP实现Comet方案。核心思想就是服务器替我去和网站进行连接、去刷新,有新数据输出时调用flush()函数。

我的本意是节省手机的资源,自然很注意实现出来的效果。经过测试,连开一天流量耗用在一兆上下,可以接受;耗电稍微有点猛,IE每三小时耗10%的电。手机上还有Opera Mobile,耗电量待测。

实现的过程中遇到几个技术要点,记录一下。
• IE真是收到256字节后才开始处理数据,连移动版也是。不过加上样式表和少量脚本后也差不多刚好这么长。还发现似乎Mobile Safari有同样的问题,且长度下限还不止256。
• 我曾为了让手机给我一个”容易注意到”的提醒而想了很久,毕竟能用的只有HTML/Javascript。后来猛然发现,alert()是会让IE发出警告音的;一直调在静音模式才没注意到;可惜震动恐怕真的无解了,说不定写个ActiveX才能实现。
• 如果希望避免像其他网站发送Referrer(以避免带来不必要的麻烦),用JS/Meta Refresh等等一堆方法都是没用的。不过其实也很简单,保持源网页是安全连接下的,链接到其他非安全连接网页时自然就不发送Referrer了。

这下可以治治我的刷新强迫症了。

Update: 托联通卡的福,可以精确的测流量消耗了;自己的网页Comet每小时耗130KB。作为对照,也用SSL的微软ActiveSync每小时耗90KB。两者耗电量很接近。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Powered by WordPress. Design: Supermodne.