27
MSG430 MSG430 采采 采采 AJAX AJAX 采采 采采 采采采采采采采采采采采采RTC RTC 采采 采采

MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

Embed Size (px)

DESCRIPTION

MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台. 课程内容概述. 本课程介绍了最新的 Microsoft Office Communicator Web Access AJAX 服务。开发人员可以很方便的使用这个服务,将即时消息集成进 Web 应用之中,或者定制个性化的即时消息客户端。 听众范围:开发人员 预备知识 DHTML & CSS JavaScript DotNET & C#. 课程内容安排. AJAX 技术概要 Communicator Web Access 配置与访问 - PowerPoint PPT Presentation

Citation preview

Page 1: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

MSG430MSG430采用采用 AJAXAJAX 技术技术访问即时通讯(访问即时通讯( RTCRTC )平台)平台

Page 2: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

课程内容概述课程内容概述

本课程介绍了最新的本课程介绍了最新的 Microsoft Office Microsoft Office Communicator WebCommunicator Web AccessAccess AJAXAJAX 服务。开发服务。开发人员可以很方便的使用这个服务,将即时消息集成人员可以很方便的使用这个服务,将即时消息集成进进 WebWeb 应用之中,或者定制个性化的即时消息客应用之中,或者定制个性化的即时消息客户端。户端。

听众范围:开发人员听众范围:开发人员预备知识预备知识

DHTMLDHTML && CSSCSS

JavaScriptJavaScript

DotNETDotNET && C#C#

Page 3: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

课程内容安排课程内容安排

AJAXAJAX 技术概要技术概要

CommunicatorCommunicator WebWeb AccessAccess 配置与访问配置与访问

CommunicatorCommunicator WebWeb AccessAccess AJAXAJAX ServiceService 程序设计与演示程序设计与演示

总结与总结与 Q&AQ&A

Page 4: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

AJAXAJAX 技术概要技术概要

Page 5: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

AJAXAJAX 是一种概念是一种概念

AJAXAJAX 概念的提出者概念的提出者 Jesse James GarrettJesse James Garrett 认为认为AJAXAJAX 是是 Asynchronous JavaScript and XMLAsynchronous JavaScript and XML 的缩写的缩写AJAXAJAX 并不是一门新的语言或技术,它实际上是几项技并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一起,包括术按一定的方式组合在一起,包括

使用使用 XHTMLXHTML 和和 CSSCSS 标准化呈现标准化呈现使用使用 DOMDOM 实现动态显示和交互实现动态显示和交互使用使用 XMLXML 和和 XSLTXSLT 进行数据交换与处理进行数据交换与处理使用使用 XMLHttpRequestXMLHttpRequest 进行异步数据读取,进行异步数据读取, XMLXML 或纯文本等或纯文本等最后用最后用 JavaScriptJavaScript 绑定和处理所有数据绑定和处理所有数据

OutlookOutlook WebWeb AccessAccess 是第一个符合是第一个符合 AJAXAJAX 概念概念的成功的商业程序的成功的商业程序

Page 6: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

AJAXAJAX 为什么流行为什么流行使用使用 AJAXAJAX 的最大的最大优点,就是能在不优点,就是能在不更新整个页面的前更新整个页面的前提下维护数据。这提下维护数据。这使得使得 WebWeb 应用程应用程序更为迅捷地回应序更为迅捷地回应用户动作,并避免用户动作,并避免了在网络上发送那了在网络上发送那些没有改变过的信些没有改变过的信息。息。

Page 7: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

数据交换格式:数据交换格式: JSONJSON

JavaScriptJavaScript ObjectObject NotationNotation轻量级的数据交换格式,简明易懂,易于使用轻量级的数据交换格式,简明易懂,易于使用JSONJSON 与与 AJAXAJAX 无关,是一种独立的数据交换格式无关,是一种独立的数据交换格式MicrosoftMicrosoft 一些项目将它作为一些项目将它作为 AJAXAJAX 的数据交换格式的数据交换格式

JSONJSON 举例举例{

“Methods” : [{

“Note” : “Text” ,“MethodName” : “myMethod”

} ]}

Page 8: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

CommunicatorCommunicator WebWeb AccessAccess 配置与访问配置与访问

Page 9: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

CommunicatorCommunicator WebWeb AccessAccess

类似类似 OfficeOffice CommunicatorCommunicator 20052005 的的 WebWeb 客户客户端端使用使用 CWACWA AJAXAJAX ServiceService 构建构建除浏览器外不需要安装任何软件,包括除浏览器外不需要安装任何软件,包括 ActiveXActiveX

WebWeb 界面的极致用户体界面的极致用户体验验

Page 10: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

CommunicatorCommunicator WebWeb AccessAccess

Page 11: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

配置配置 CommunicatorCommunicator WebWeb AccessAccess

安装安装 LiveLive CommunicationCommunication ServerServer 20052005 SP1SP1企业版或标准版企业版或标准版

安装安装 CommunicatorCommunicator WebWeb AccessAccess ServerServer

安装安装 CWACWA HotfixHotfix KB915066KB915066http://www.microsoft.com/downloads/details.aspx?familyid=5FFhttp://www.microsoft.com/downloads/details.aspx?familyid=5FFBD0DA-124C-4FFC-A810-4A9E9E50D80D&displaylang=enBD0DA-124C-4FFC-A810-4A9E9E50D80D&displaylang=en

官方官方 CWACWA 部署指南(英文版)部署指南(英文版)http://www.microsoft.com/downloads/details.aspx?http://www.microsoft.com/downloads/details.aspx?FamilyId=B70782D2-C9AB-423E-A126-FamilyId=B70782D2-C9AB-423E-A126-9E2882863969&displaylang=en9E2882863969&displaylang=en

Page 12: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

体系结构体系结构

Page 13: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

访问访问 CommunicatorCommunicator WebWeb AccessAccess

登录进入登录进入 CWACWA ServerServer 而不是而不是 LCSLCS ServerServer

推荐使用推荐使用 HTTPSHTTPS 的方式访问,也允许的方式访问,也允许 HTTPHTTP 方式方式两种认证方式两种认证方式

CWACWA 表单认证(表单认证( FormForm BasedBased AuthenticationAuthentication ))IISIIS 集成认证(集成认证( IntegratedIntegrated WindowsWindows AuthenticationAuthentication ))

与与 ActiveActive DirectoryDirectory 集成进行身份认证集成进行身份认证需要在需要在 IEIE 中将站点设定为可信站点中将站点设定为可信站点

访问访问 URLURL 的设定的设定填写登录信息 填写登录信息 https://<cwaServer>https://<cwaServer>

单点登录 单点登录 https://<cwaServer>/[email protected]://<cwaServer>/[email protected]

不完全域名 不完全域名 https://<cwaServer>/userhttps://<cwaServer>/user

Page 14: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

CommunicatorCommunicator WebWeb AccessAccess AJAXAJAX ServiceService 程程序设计序设计

Page 15: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

建立自己的建立自己的 CWACWA AJAXAJAX 应用应用

使用使用 CWACWA 控制台建立新的控制台建立新的 CWACWA 站点站点在在 IISIIS 中添加中添加 AJAX extension & filterAJAX extension & filter

浏览器应用(如浏览器应用(如 JavaScriptJavaScript ))在此站点在此站点 /cwa/client/cwa/client 目录下建立虚拟目录目录下建立虚拟目录设定此目录可读与可运行设定此目录可读与可运行 JavaScriptJavaScript 权限权限

非浏览器应用(如非浏览器应用(如 C#C# ))必须能够发送必须能够发送 HTTPHTTP请求到此站点请求到此站点

CWA AJAX Service SDK 1.0CWA AJAX Service SDK 1.0http://www.microsoft.com/downloads/details.aspx?http://www.microsoft.com/downloads/details.aspx?familyid=a839967b-680f-41e6-99b4-familyid=a839967b-680f-41e6-99b4-f020319bbd88&displaylang=enf020319bbd88&displaylang=en

Page 16: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

CWACWA AJAXAJAX ApplicationApplication浏览器浏览器 ··非浏览器非浏览器

Page 17: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

基本流程基本流程用户登录用户登录

FormForm basedbased AuthenticationAuthenticationPOSTPOST 动作 动作 http://<cwaServer>/forms/logon.htmlhttp://<cwaServer>/forms/logon.html

WindowsWindows IntegratedIntegrated AuthenticationAuthenticationGETGET 动作 动作 http://<cwaServer>/iwa/logon.html?http://<cwaServer>/iwa/logon.html?uri=<user>@<domain>uri=<user>@<domain>

包含包含 SIPSIP 、、 Domain\UserDomain\User、密码、登录状态、语言、密码、登录状态、语言缓存缓存 CookieCookie ,以后每个,以后每个 RequestRequest都要提供都要提供CookieCookie

注册客户端事件监听注册客户端事件监听等待服务器事件,触发相应客户端事件等待服务器事件,触发相应客户端事件登出 登出 http://<cwaServer>/cwa/SignoutHandler.ashx/?Ck=<Cookie>http://<cwaServer>/cwa/SignoutHandler.ashx/?Ck=<Cookie>

Page 18: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

客户端与服务器交互客户端与服务器交互调用服务器方法调用服务器方法

http://<cwaServer>/cwa/MainCommandHandler.ashx/?http://<cwaServer>/cwa/MainCommandHandler.ashx/?Ck=<Cookie>Ck=<Cookie>

Request:Request: 使用使用 POSTPOST 方法,方法, ContentContent TypeType 必须设为必须设为 text/jsontext/json

接收服务器事件接收服务器事件http://<cwaServer>/cwa/AsyncDataChannel.ashx?http://<cwaServer>/cwa/AsyncDataChannel.ashx?AckID=<ackID>&Ck=<Cookie>&UA=trueAckID=<ackID>&Ck=<Cookie>&UA=true

Request:Request: 使用使用 GETGET 方法,方法, ContentContent TypeType 同样需要设为同样需要设为 text/jsontext/json

ackIDackID 服务器端计数器,用来控制返回大于服务器端计数器,用来控制返回大于 ackIDackID 的的所有最新事件所有最新事件返回的事件列表为返回的事件列表为 JSONJSON 格式,解析后映射到相应客户端事件格式,解析后映射到相应客户端事件服务器要求客户端延时服务器要求客户端延时 1-31-3秒后再发送下一个秒后再发送下一个 RequestRequest

Page 19: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

数据交换格式数据交换格式 JSONJSON

{ “AJAXVersion” : string, “methods“: [ { "RequestId" : string, "MethodName" : "<methodName>", "<paramName>" : <paramValue> }, { "RequestId" : string, "MethodName" : "<methodName1>", "<paramName>" : <paramValue> “<paramName>” : <paramValue> } ]}

{ "Events": [ {"<EventName>" : { "<ParameterName>" : <parameterValue>, ...}}, ...... {"<EventName>" :{ "<ParameterName>" : < parameterValue >, ...} ]}

客户端发送请求的数据格式客户端发送请求的数据格式

服务器端返回事件的数据格式服务器端返回事件的数据格式

Page 20: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

API:API: 能够调用的方法能够调用的方法即时消息即时消息

AcceptImAcceptIm

StartImStartIm

StopImStopIm

SendMessageSendMessage

NotifyTypingNotifyTyping

在线状态在线状态PresencePresence

QueryPresenceQueryPresence

AppStateAppState

搜索用户搜索用户SearchSearch

联系人与组联系人与组AddImUserAddImUser

ContactContact

GroupGroup

ContactGroupContactGroup

AclAcl

选项设置选项设置OptionOption

NoteNote

PhoneOptionPhoneOption

TagOptionTagOption

Page 21: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

API:API: 能够接收的事件能够接收的事件

主要事件主要事件AclEventAclEvent

ContactEventContactEvent

IMEventIMEvent

OptionsEventOptionsEvent

PresenceEvenPresenceEventt

SearchEventSearchEvent

辅助事件辅助事件EpidEventEpidEvent * *ExceptionEventExceptionEvent

PolicyEventPolicyEvent

TimeoutWarningEvenTimeoutWarningEventt

RequestEventRequestEvent

QueryTimeoutEventQueryTimeoutEvent * *SessionUpdateEventSessionUpdateEvent * *

Page 22: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

[email protected] [email protected]

即时消息进程举例即时消息进程举例

发送即时消息请求[email protected]=Hi

收到即时消息事件IMEventAction=addMessage=HiIMState=ConnectingInviters=zhao@contoso.com

[email protected]

接受即时消息请求RequestMethodName=AcceptIm

状态更新事件IMEventAction=updateIMState=Connected

状态更新事件IMEventAction=updateIMState=Connected

服务器

Page 23: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

同步请求与异步请求同步请求与异步请求

同步同步 HTTPHTTP请求(请求( synchronoussynchronous ))HttpWebRequestHttpWebRequest对象,在对象,在 C#C# 中中必须建立新线程,轮询等待服务器端事件必须建立新线程,轮询等待服务器端事件从服务器端取从服务器端取 TimeoutTimeout值,根据服务器负载情况而变值,根据服务器负载情况而变

异步异步 HTTPHTTP请求(请求( asynchronousasynchronous ))XMLHttpRequestXMLHttpRequest对象,在对象,在 JavaScriptJavaScript 中中只需指定事件只需指定事件 HandlerHandler 处理异步响应处理异步响应Request.onreadystatechange=handleResponseRequest.onreadystatechange=handleResponse

Page 24: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

总结总结

AJAXAJAX带给我们更多的开发潜能带给我们更多的开发潜能

CWACWA AJAXAJAX 服务是我们能将服务是我们能将 LCSLCS 功能集成进功能集成进 WebWeb应之中应之中

非非 WindowsWindows 应用也能使用应用也能使用 CWACWA AJAXAJAX 服务来集服务来集成成 LCSLCS

Page 25: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

微软微软 AJAXAJAX 项目项目—— AtlasAtlashttp://atlas.asp.nethttp://atlas.asp.net

JSONJSON 官方站点官方站点http://www.json.orghttp://www.json.org

LiveLive CommunicationCommunication ServerServer 开发者站点开发者站点http://msdn.microsoft.com/office/server/http://msdn.microsoft.com/office/server/livecomm/default.aspxlivecomm/default.aspx

Page 26: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台

填反馈表填反馈表

Page 27: MSG430 采用 AJAX 技术 访问即时通讯( RTC )平台