Java ME通过网络通知推送技术



有没有办法在Java ME中实现推送技术,即不使用SMS?

我知道基于流/基于网络的通知是解决方案,但如何配置向客户端发送通知的服务器?我们如何获得要发送通知的收件人(客户端)地址?

有一个关于短信的教程https://www.ibm.com/developerworks/java/tutorials/wi-midpreg/但我需要通过http实现它。

我们如何获取通知的收件人(客户端)地址要发送吗?

事情通常就是这样运作的。当手机不使用数据服务时,它没有IP地址。当手机请求数据时,它将接收一个动态IP地址,并在数据通道处于活动状态时保留该地址。该地址在电信网络中是唯一的,代理将使其与互联网的其他部分协同工作。

你可以使用的一种方法是在应用程序和服务器之间建立永久的套接字连接,但这并不能很好地扩展。

我的看法?如果你用短信让它工作,用它唤醒你的应用程序,然后让你的应用打开与服务器的连接,下载它需要的数据。有些手机甚至允许应用程序在没有用户界面的情况下运行。

不幸的是,对于所有j2me,没有标准的推送方式。

您自己也很难实现,因为没有办法为所有j2me提供后台应用程序/流程。

诺基亚"NNA"提供了他们目前正在推动的解决方案。但这只适用于一些最新的操作系统版本。

PushRegistry API文档(在线提供)不限于SMS。

特别是,数据报和套接字被明确列为示例:

描述符文件声明符号示例

下面是一个示例描述符文件条目,它将在端口79保留一个流套接字,在端口50000保留一个数据报连接。(端口号由IANA维护,包括众所周知的、用户注册的和动态的端口号)[参见IANA端口号注册]

MIDlet-Push-1: socket://:79, com.sun.example.SampleChat, *
MIDlet-Push-2: datagram://:50000, com.sun.example.SampleChat, *

注意,MIDP2规范指出,特定的协议支持是可选的,是否为MIDlets:启用它取决于实现

连接与推送注册支持

并非所有通用连接都适合用作推送应用程序传输。即使设备上支持协议作为入站连接类型,也不需要将其作为有效的推送机制启用。例如,平台可能支持MIDlet中的服务器套接字连接,但可能不支持用于推送启动能力的入站套接字连接。当平台不支持该可选功能时,会从registerConnectionregisterAlarm方法抛出ConnectionNotFoundException

最新更新