首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

创建基于 Ajax 的 IM 客户端(1)

创建基于 Ajax 的 IM 客户端(1)

有关本教程在本教程中,您将使用 Prototype Javascript 库及 Jabber 服务器创建一个基于 Web 的即时消息客户端。创建完成后,您将可以选择您的好友列表中的用户并能通过 Web 页面向传统 IM 客户端上的用户发送(或接收)消息。
在本教程中,您将了解:
  • 如何安装一个完整的即时消息解决方案
  • 如何创建即时消息 bot
  • 如何使用 Java 代码发送和接收即时消息
  • 如何使用 Jabber roster
  • 如何创建能自动更新的 Ajax Web 页面
所有这些最终会给您带来一个能将即时消息通信量转变为纯 HTTP 的应用程序,这样您就不会遇到防火墙问题。
先决条件本教程使用了如下工具,所有这些工具均在第一部分设置:
  • :一种可与之通信的即时消息服务。Openfire 是一种开源 Jabber 服务器,可运行于 Windows® 操作系统、MacOs 或 Linux® 之上。
  • :一种即时消息客户端,可用来查看状态。Spark 是 Openfire 人员提供的一种开源 Jabber 客户端。
  • :一种与 Jabber 服务器通信的方式。Smack Java API 提供了您所需要的全部功能。
  • :可用来创建和管理 Ajax 应用程序的 Prototype JavaScript 库。
  • :一种 Java Web 应用服务器,能够运行应用程序所需的 servlet。
  • 或另外的 Java 环境:您将在本教程中构建 Java 应用程序,您尽可以使用 Java IDE,比如 Eclipse,它让您能够方便地直接在应用服务器上进行开发。或者也可以从  下载 Java SDK。
进行准备本项目涉及了很多不同的块(正如  中所看到的),让我们先来看看它们是如何协同工作的。
将要实现的目标即时消息将世界联系的更紧密了 — 或者至少压缩了实现诸多事情所需的时间。在很多情况下,这是件好事。但在某些情况下,却是个问题,因为出于安全性方面的考虑,很多环境都禁止使用即时消息。
所幸的是,这一问题通过将即时消息通信量转变为纯 Web 通信量能够得到解决。在本教程中,我们将创建一个基于 Ajax 的 Web 客户端,用于进行即时消息传递。此页面包括 roster 或好友列表,并具有发起和维护与其中所列人员会话的能力。
简而言之,您可以从此 Web 页面发送消息并让其在好友的 IM 客户端上弹出,而且他们从其客户端上发回的消息也能显示在 Web 页面上供您查看。
重温 Ajax如果已经开始阅读本教程,您可能已经非常熟悉 Ajax,不过为了以防万一我们还是先来温习一下。
Ajax 是一组技术和技巧的组合,可用来创建 Web 页面,其中的内容可分别更改。无需更新整个页面,只更改页面的一部分 — 比如实时交流 — 即可。这些信息大都通过 HTTP 来自于外部服务器。
请注意,Ajax 请求只可使用与发出请求的页面相同的协议、主机和端口,所以需要在 Web 服务器上托管此聊天客户端。
Prototype 简介要进行所有这些 Ajax 调用是一件很复杂的事情:需要打开连接、侦听连接状态的更改、解析结果并相应进行动作。
所幸的是,现在已纪出现了很多简化此过程的库,最简单的一种方式是使用 Prototype.js。此库包含增强功能,可用来处理页面的文本对象模型( Document Object Model)— 让一般的 JavaScript 任务变得十分简单 — 以及 Ajax 对象。Ajax 对象可显式提供使用远端数据更新部分页面的能力。它甚至包括了经常性地更新信息的能力。
本教程对 JavaScript 和 Ajax 间的交互使用了 Prototype。
Jabber 简介目前有很多不同的即时消息系统,有些可互操作,但是大部分不可以。Jabber 是面向消息传递应用程序的一种开放标准,这些消息传递应用程序大都包括发送和接收消息、好友列表管理(通过 roster)和在线检测(这样,您就可以知道好友是否登录)功能。
本教程使用了此标准的开源实现来将消息从 Web 页面传递给 Spark 即时消息客户端(或任何其他的 Jabber 客户端)并将消息发回。
返回列表