1、背景
Sametime提供了非常强大的集成能力,可以广泛地扩展在线感知能力。Sametime 的在线感知技术可以在OA上让员工们知道自己需要联络的同事是否在线、是否有空;能随时开展一对一、一对多的传递即时消息、传递文件、召开网络会议。也可以扩展到外网网站上,让客户看到我们的客服人员是否在线,并能发送即时消息。
2、了解Sametime开发
sametime toolkit提供了丰富的开发接口。详细的IBM lotus Sametime介绍可以在google上面搜索相关文档了解一下。
对Sametime有一点认识之后,当中我们最感兴趣的还是Sametime的在线感知功能,但要实现Sametime感知的话,要实现的最重要的一步,就是怎么实现WEB客户端的登录。以下为项目中使用的一个Web在线感知测试代码样例
了解Sametime开发
<html>
<head>
//http://sametime.naveco.com.cn/ 为sametime服务器的路径
<LINK REL=STYLESHEET HREF="http://sametime.naveco.com.cn/sametime/stlinks/stlinks.css" TYPE="text/css">
<SCRIPT src="http://sametime.naveco.com.cn/sametime/stlinks/stlinks.js"></SCRIPT>
<SCRIPT>
setSTLinksURL("http://sametime.naveco.com.cn/sametime/stlinks","zh");
// 设置Sametime toolkit环境路径,设置默认UI为"zh" 简体中文
</SCRIPT> <SCRIPT>
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return (dc.substring(begin + prefix.length, end));
}
如果配置sametime服务器允许Anonymous用户,就可以扩展到公司网站,提供给客户发送即时聊天信息的功能否则需要设置sametime的登录用户了。这里假设我们的sametime服务器和domino服务器已完成了多服务器SSO配置,我们通过传递Token的方式登录到sametime服务器
if (getCookie(’LtpaToken’) == null) {
writeSTLinksApplet("Anonymous User","",false);
}else {
writeSTLinksApplet("<计算的值>",getCookie(’LtpaToken’),true);
这里需要严重注意的是,使用不使用LDAP方式对在线感知来说关系不大,但如果sametime服务器是使用LDAP方式,传递用户名的地方都需要把@Username里面的分隔符"/" 换成 ","
<计算的值>的内容就是处理@Username的
</SCRIPT>
</head><body><SCRIPT>
writeSametimeLink函数的作用就是展现 XXX 用户是否在线,在线状态的了,如果用户在线的话。点击它的图标就会打开与该用户的即时聊天窗口
三个参数分为是:用户全名 ; 显示名; 是否要求服务器解析用户名; 选项:是否显示on/off line图标;否显示用户显示名
这个样例中列出来oatest,wangyuehua,yujianbo这三个用户的在线情况
writeSametimeLink("CN=oatest,OU=support,OU=COPARTNER,OU=NAVECO,DC=ned,DC=naveco,DC=com,DC=cn","oatest",false,"text:yes;icon:yes");
document.write("<br>");
writeSametimeLink("CN=wangyuehua,OU=1zz1cscw,OU=FinancialDept,OU=FinanceArea,OU=NAVECO,DC=ned,DC=naveco,DC=com,DC=cn","wangyuehua",false,"text:yes;icon:yes");
document.write("<br>");
writeSametimeLink("CN=yujianbo,OU=wljsk,OU=InformationManagement,OU=ManagementAndPlanningArea,OU=NAVECO,DC=ned,DC=naveco,DC=com,DC=cn","yujianbo",false,"text:yes;icon:yes");
</SCRIPT>
</body></html>