在 Ajax 应用程序中实现实时数据推送
?
就在连接之后,Flex 客户端会立即发送一条策略文件的请求。该请求仅包含一个 XML 标记:<policy-file-request/>。在响应中,您需要返回此策略文件。清单 3 中的代码就完成了这个任务。
清单 3. 发送策略文件响应
?
此代码建立了与客户端的成功连接。现在,服务器可以与客户端发起 “握手” 之类的协议,此时,服务器通常会指定一个惟一的 ID,并将其发送给客户端,此后,服务器可根据 ID 缓存套接字,在此之后,如果服务器需要向客户端推送某些数据,可以按照 ID 定位套接字,并使用其输出流。幸运的是,OpenLaszlo 也使用了相同的基于策略文件的机制,因而,同样的服务器代码适用于两种场景。
下面将介绍如何创建 Flex 套接字,随后将其与 Ajax 应用程序连接。
?
(为简短起见,忽略了其他处理方法。在本文的 下载 部分中可获得完整的代码清单。)
就是这样,创建一个套接字对象并连接此对象就是这样轻松。这一代码清单创建了一个名为 ClientSocket 的新类,随后声明了一个名为 “xml_socket” 的 XML 套接字对象。只要此套接字对象读取到来自服务器的数据,就会触发 onData 事件,该事件将由为 onData 定义的处理方法处理。最后,在 onData 处理方法中,调用 Ajax 应用程序中的外部 JavaScript 函数。此后的流程与 Flex 客户端相同。
要创建 ClientSocket 对象,只需声明它即可:
清单 7. 声明 ClientSocket