4、应用程序的开发
Pushlet框架实质上是实现了一个信息交换的过程。因此基于此框架开发的应用程序一部分是用于生成信息和向框架发送信息,而另一部分则是用于接收信息,通常用浏览器来接收信息。因为发送者和接受者之间的使用的网络协议是HTTP,可以用支持HTTP的任何一种编程语言或脚本语言开发。Pushlet的信息结构由服务器端的事件类定义,事件是一个带有主题标识符的信息,根据不同的客户端,事件在发送时需要采用不同的编码技术,主要用到的编码技术有JavaScript和XML}
4.1开发发送者
向Pushlet框架发送事件可以通过三种方式:直接使用发报机发送;远程或本地使用Pushlet协议发送;使用事件源发送。
1.直接使用发报机发送
应用程序通过发报机的getInstance}方法得到发报机对象,然后采用多播、单播、广播三种方法中的一种来播送事件,三种播送方法的调用代码如下:
Dispatcher.getInstance0.multicast0;//多播
Dispatcher.getInstance0.unicasl0;//单播
Dispatcher.getInstance0.broadcast0;//广播
而向Pushlet框架发送事件的其他两个方法,实质上最终使用的还是发报机的播送方法。但是要使用发报机,则要求调用发报机的类需要和发报机在同一个类加载器中。如果发送者在另一个网络应用程序中,那么可以使用Pushlet协议或者将Pushlet框架中的所有Java文件打包成JAR文件放在系统类路径中,而且这个JAR文件还可以当做Tomcat服务器中的一个共享类库。
2.使用事件源发送
开发事件源需要创建一个事件源类,这个事件源类必须实现EventSource接口或扩展EventPullSource类。如果事件源类实现了EventSourc。接口,那么它需要实现把事件”推”到pushlet框架的方法;如果事件源类扩展了EventPullSource类,那么Pushlet框架会每隔一段时间自动地拉取事件源产生的事件。然后,把事件源类捆绑到TestEventPullSources类中,最后将这个事件源的类名存放到类路径下的资源文件sources.properties中。将事件源捆绑到TestEventPullSources类中,并存放于资源文件中,目的是便于对事件源的创建和管理。当Pushlet.服务器被载人时,事件源管理器就会在类路径中寻找资源文件,并将文件中的事件源载人激活。
3.远程或本地使用Pushlet协议发送
Pushlet框架提供了一个发布事件的接口,即p_publish}方法,应用程序可以通过此方法发送事件。此外,Java客户还可以通过pushletClient类发送。
4.2开发接收者
开发接收者需要明确接收者发出的pushlet请求以及接收者与服务器之间的交互方式,下面分别加以说明:
l.Pushlet请求
客户要订阅之前,首先必须向Pushlet服务器发送一个HTTP订阅请求,这个请求至少包含两个参数:传送事件采用的编码技术和客户订阅的主题。
(1)传送事件采用的编码技术有四种
JavaScript的编码技术用字符串’'js',表示;XML的编码技术用字符串”xml',表示,这种编码技术将事件组织成<<event>元素流;还有一种更严格的XML编码技术用’'xml-strict"表示,它要求事件元素必须包含在完整的文档中,这种编码技术将事件组织成<event>元素包含在<pushlet>元素中;Java序列化对象的编码技术用字符串’'ser"表示。