Web服务器向J2ME应用程序发送命令

时间:2009-08-06 17:53:51

标签: java http java-me mobile sockets

可以通过来自远程Web服务器的消息触发J2ME应用程序。我想在客户端移动电话上运行的J2ME应用程序收到此消息时立即执行任务。 我已阅读HTTP连接,但我了解它是基于客户端的协议,服务器将只回复客户端请求。 知道是否有任何协议服务器可以在没有客户端发起任何请求的情况下向客户端发送命令?如何基于Socket / Stream(TCP)或UDP接口?

4 个答案:

答案 0 :(得分:3)

如果移动设备不允许您建立TCP连接,并且您仅限于HTTP请求,那么您正在考虑实施“长轮询”。

一个POST请求http和Web服务器将等待尽可能长的时间(在事情超时之前)来回答。如果在连接空闲时到达某些东西,它可以直接接收它,如果在长轮询请求之间到达某些东西,它会排队等待请求进入。

如果您可以建立TCP连接,那么只需设置连接并让它保持空闲状态。我有icq和irc应用程序,基本上只是坐在那里等待服务器发送它。

答案 1 :(得分:2)

您应该看到PushRegistry功能,当手机收到该短信然后进行所需的HTTP连接时,您可以将特定号码的SMS发送到特定号码。但是,它的缺点是您可能必须签署应用程序以使其在设备上工作,并且您还需要一个SMS聚合器,如SMSLibKannel

答案 2 :(得分:2)

您可以打开套接字连接并在应用中实现“隐藏”(或“最小化”)功能。将其隐藏起来:

Display.getDisplay(MyMIDlet.instance).setCurrent(null);

循环收听服务器,如果收到一些消息,请通过从画布调用此方法弹出应用程序:

Display.getDisplay(MyMIDlet.instance).setCurrent(this);

但它不适用于所有设备。

答案 3 :(得分:1)

j2me支持套接字推送。但它只有在您的服务器可以向您的手机提供数据时才有效。很可能运营商网关不允许这样做。 也许有可能你的手机有静态的外部IP地址 - 有些运营商可以为$$提供这个。