我在我的手机(客户端)上运行了一个J2ME应用程序,
我想打开与服务器的HTTP连接,并继续轮询服务器上的更新信息。
所执行的每次轮询都会耗尽GPRS字节,从长远来看会变得昂贵,因为GPRS计费基于发送和接收的数据包。 是否有使用HTTP协议进行轮询的字节有效方式?
我也听说过长时间的民意调查,但我不确定它是如何运作的,效率如何。
实际上,优先考虑的方法是服务器告诉手机应用程序新数据已准备就绪,这样就不需要进行轮询,但是我不知道这些技术,特别是在J2ME中。
答案 0 :(得分:6)
如果您只想使用HTTP解决此问题,long polling将是最好的方法。这很容易。首先,您需要在服务器端设置URL以进行通知(例如http://example.com/notify
),并定义通知协议。协议可以像一些文本行一样简单,每行都是一个事件。例如,
MSG user1
PHOTO user2 album1
EMAIL user1
HEARTBEAT 300
手机上的投票主题就是这样,
您必须注意以下实施细节,
我被告知还有其他更有效的方法可以将通知推送到手机,例如使用短信和一些IP级别的技巧。但是你要么必须做一些低级别的非便携式编程,要么遇到专利侵权的风险。使用仅HTTP解决方案,长轮询可能是最好的。
答案 1 :(得分:2)
我不确切地说“轮询”是什么意思,你的意思是IMAP IDLE吗? 连接保持打开状态,并且一次又一次地建立连接本身没有开销。如上所述,另一种可能的解决方案是HTTP请求的HEAD标头(忘了,谢谢!)。
请查看此tutorial以获取J2ME中HTTP连接的基础知识。
无法在没有Push Support的情况下将数据推送到应用程序/设备(如Blackberry)。
答案 2 :(得分:1)
HEAD HTTP request是HTTP提供的方法,如果您想检查页面是否已更改,浏览器和代理服务器会使用它来检查页面是否已更新,而不会占用大量带宽
在HTTP术语中,HEAD请求与没有正文的GET相同,我假设如果您的民意调查不是很频繁,那么最多只有几百个字节可以接受。
答案 3 :(得分:1)
执行此操作的最佳方法是使用套接字连接。像GMail这样的许多应用都使用它们。