前言 1
第1章 即时消息传递概述 5
1.1 即时消息传递简史 5
1.2 即时消息传递的优点 6
1.3 对即时消息传递的需求 6
1.4 即时消息传递的未来 7
1.5 Jabber即时消息传递模型 7
1.5.1 Jabber服务器简介 7
1.5.2 Jabber客户 8
1.5.3 Jabber XML协议的结构 9
1.5.4 为什么要和Jabber服务器集成 11
1.6 即时消息传递应用程序简介 11
1.6.1 IM应用程序处理外部请求的工作流程 12
1.6.2 IM应用程序处理本地客户请求的工作流程 14
1.7 需要的编程技术 14
1.7.1 C#客户模块需要的编程技术概述 14
1.7.2 C#服务器模块需要的编程技术概述 15
1.7.3 为什么要选择C 15
1.7.4 Java客户模块需要的编程技术概述 16
1.7.5 Java服务器模块需要的编程技术概述 16
1.7.6 为什么选择Java 17
1.8 小结 18
第2章 设计即时消息传递应用程序 19
2.1 应用程序设计时要考虑的事项 19
2.2 数据库设计时要考虑的事项 20
2.3 设计服务器模块时要考虑的事项 20
2.3.1 连接 21
2.3.2 通信 21
2.3.3 多客户 22
2.3.4 消息同步 22
2.3.5 Web服务 22
2.3.6 应用程序需要的Web服务 27
2.4 设计客户模块时要考虑的事项 37
2.4.1 和服务器的连接 37
2.4.2 和服务器的通信 37
2.4.3 GUI 37
2.4.4 客户模块的工作流程 38
2.4.5 客户模块说明 39
2.5 应用程序通信标准 41
2.5.1 通信模型 41
2.6 创建会话时的注意事项 46
2.8 小结 47
2.7 关闭流时的注意事项 47
第3章 即时消息传递服务器(Java) 49
3.1 Java Web服务 49
3.1.1 J2EE-Java的Web服务开发平台 50
3.1.2 如何访问Web服务 52
3.1.3 Tomcat 52
3.1.4 如何构建Web服务 53
3.1.5 例子 55
3.2 服务器开发 58
3.2.1 服务器应用程序 58
3.2.2 Java Web服务 62
3.3 服务器应用程序的内部情况 65
3.3.1 怎样处理来自客户的请求 66
3.3.2 如何处理请求 69
3.3.3 生成对Jabber服务器的请求 79
3.3.4 如何处理响应 82
3.4 Java Web服务的内部情况 96
3.4.1 登录到即时消息传递应用程序 96
3.4.2 退出即时消息传递应用程序 97
3.4.3 注册一个新用户 98
3.4.4 注销一个已存在的用户 99
3.4.5 在朋友列表中添加一个朋友 100
3.4.6 从服务器获取朋友列表 101
3.4.7 将用户的状态发送给他的朋友 102
3.4.8 从朋友列表中删除一个朋友 104
3.5 技术文档 105
3.5.1 服务器应用程序类 105
3.5.2 Web服务 200
3.6 小结 223
4.1 Web服务 225
4.1.1 如何构建Web服务 225
第4章 即时消息传递服务器(C#) 225
4.1.2 如何访问Web服务 227
4.2 开发服务器 230
4.2.1 介绍ADO.NET 231
4.2.2 ADO.NET的体系结构 232
4.2.3 ADO和ADO.NET之间的比较 232
4.2.4 服务器应用程序 233
4.2.5 Web服务 234
4.3 服务器应用程序的内部情况 234
4.3.1 接收来自客户的连接请求 235
4.3.2 处理各类客户请求 237
4.3.3 处理Jabber响应 245
4.4 Web服务的内部情况 250
4.4.1 Login()Web方法 250
4.4.2 Logout()Web方法 251
4.4.3 Register()Web方法 252
4.4.4 FriendList()Web方法 253
4.4.5 Unregister()Web方法 254
4.4.6 AddFriend()Web方法 254
4.4.7 DeleteFriend8()Web方法 255
4.4.8 FriendsToNotify()Web方法 256
4.5 技术文档 257
4.5.1 frmLocalServer类 258
4.5.2 SocketThread类 272
4.5.3 InstMsgServ.asmx 326
4.5.4 JabberXml.cs 346
4.5.5 XmlFormat.cs 351
4.5.6 SckListener.cs 357
4.6 小结 358
第5章 即时消息传递的客户(Java) 359
5.1 客户的基本功能 359
5.1.1 创建用户会话 361
5.1.2 创建图形用户界面 363
5.2 建立与本地服务器的连接 364
5.3 设计客户请求 366
5.3.1 来自新用户的注册请求 366
5.3.2 已有用户的登录请求 369
5.3.3 用户的退出请求 370
5.3.4 向朋友列表添加朋友的请求 371
5.3.5 删除朋友请求 372
5.3.6 发送消息请求 373
5.3.7 已有用户的注销请求 378
5.3.8 发送通知确认接收一个朋友 379
5.3.9 发送添加网关的请求 380
5.4 处理响应 382
5.4.1 注册请求的响应 383
5.4.2 登录请求的响应 386
5.4.3 接收朋友列表 387
5.4.4 接收消息 390
5.4.5 朋友状态通知 392
5.4.6 当一个用户把你添加到他的朋友表时 394
5.4.7 当一个用户把你从朋友表中删除 395
5.4.8 添加朋友请求的响应 396
5.4.9 Add Gateway请求的响应 397
5.5 技术文档 399
5.5.1 XMLCreator类 399
5.5.2 Sparser类 404
5.5.3 Login类 411
5.5.4 Session类 418
5.5.5 Register类 426
5.5.6 MainScreen类 435
5.5.7 Message类 483
5.8 AddFriend类 498
5.5.9 AcceptFriend类 503
5.5.10 AddGateway类 508
5.5.11 UnsubscribeFriend类 514
5.5.12 ColorPreference类 518
5.5.13 About class 524
5.6 小结 526
第6章 即时消息传递的客户(C#) 527
6.1 客户模块的任务 527
6.1.1 与服务器的连接 527
6.1.2 编码客户请求 529
6.2.1 客户模块如何读服务器的响应 542
6.2 服务器响应 542
6.2.2 服务器响应的类型 543
6.3 技术文档 554
6.3.1 Main.cs类的代码描述 593
6.4 小结 668
第7章 增强的即时消息传递 669
7.1 J2ME简介 669
7.1.1 J2ME虚拟机 670
7.1.2 J2ME配置 672
7.1.3 J2ME配置文件 674
7.2.1 MIDlet简介 677
7.2 设计技术 677
7.2.2 实现列表 680
7.2.3 实现套接口 682
7.2.4 处理XML 687
7.3 编程客户请求 690
7.4 处理响应 695
7.4.1 推拉技术 696
7.4.2 J2ME客户如何处理服务器的响应 696
7.5 小结 700
附录A CD-ROM的内容 701
附录B 即时消息传递软件资源 711