WEB开发网
开发学院软件开发Java 在 Ajax 应用程序中实现实时数据推送:学习使用基... 阅读

在 Ajax 应用程序中实现实时数据推送:学习使用基于套接字的 RIA 技术

 2009-11-14 00:00:00 来源:WEB开发网   
核心提示: 您可为应用程序实现最大程度的实时服务器推送行为(不考虑网络延时等外部因素),您将获得高度可伸缩的解决方案(以同时连接的客户端数量为准),在 Ajax 应用程序中实现实时数据推送:学习使用基于套接字的 RIA 技术(5),下面我们将开始探索如何解决上述的第三个和第四个问题,基于套接字的 RIA 技

您可为应用程序实现最大程度的实时服务器推送行为(不考虑网络延时等外部因素),您将获得高度可伸缩的解决方案(以同时连接的客户端数量为准)。

下面我们将开始探索如何解决上述的第三个和第四个问题。

基于套接字的 RIA 技术

Ajax 并不能真正地解决第三个和第四个问题。因而,您需要利用其他 RIA 技术寻求解决方案。有两种 RIA 技术提供的套接字 API 可与 Ajax 应用程序交互。这两种技术是 Adobe Flex 和 OpenLaszlo。全面介绍这两种技术并非本文讨论范围之内,但这些技术提供的两种特性如下所示:

均能通过后端打开 TCP 二进制套接字

均能出色地与运行在同一个浏览器窗口中的 Ajax 应用程序(主要是 JavaScript)交互

但这仅仅解决了部分问题。您确实可以打开套接字,可以使 Ajax 应用程序使用它们,但 Ajax 应用程序仍然无法处理纯二进制数据。这又该怎么办?实际上,这两种技术都提供了二进制 TCP 套接字的一种变体,称为 XMLSocket,它可用于来回传输纯 XML 数据。这正是您需要的东西。如果这些技术能够通过服务器打开套接字,如果它们能够传输 XML 数据,我们的任务就完成了。Ajax 应用程序可充分利用这一点,模拟实时服务器推送技术。下面将介绍如何实现。

实现 Ajax 服务器推送

我将使用两种工具解释这项技术:Adobe Flex 和 OpenLaszlo。首先,您需要编写能够接收并缓存连接的后端服务器。在这里不能太过偏离主题,因而要保证服务器基于阻塞 I/O。

您需要创建一个服务器套接字,接收预先指定地址的连接:


清单 1. 创建服务器套接字
public class SimpleServer { 
  public static void main(String[] args) throws IOException { 
    ServerSocket serverSocket = new ServerSocket(); 
    serverSocket.bind(new InetSocketAddress("localhost",20340)); 
    Socket socket = serverSocket.accept(); 
  } 
}

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Ajax 应用程序 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接