这篇文章很是好,最重要的是后面有实现的代码,很实用,直接用到本身系统中了html
引用网址:http://www.dezai.cn/Blog/article.asp?id=478web
作完这个集成这后,仍是感受挺有意思的,毕竟公司90%的人都在使用RTX,再也用使用OA通知,能够像360强制弹窗同样,提醒在线的同事啦。
如下开发基于RTX2010进行开发
准备工做
RTX腾讯通的介绍能够在下面的这个网站上获取
腾讯通官网
如下文档可能在您开发过程当中,能给您带来帮助:
官网下载地址:
http://rtx.tencent.com/rtx/support/index.shtml
Server端开发文档指南
点击下载此文件(569.28 KB)
[2014-02-18 07:28 PM; 已下载次数:196]
Client端开发文档指南
点击下载此文件(1.02 MB)
[2014-02-18 07:27 PM; 已下载次数:422]
RTXServer SDK 帮助文档及示例
点击下载此文件(4.51 MB)
[2014-02-18 07:26 PM; 已下载次数:58]
RTXClient SDK 帮助文档及示例
建议在开发以前,大体浏览或阅读以上的相关文档,这样作起来才有底。
环境配置
1.装有RTX2011 正式版的RTX Server 服务端的服务器

2.RTX SDK的安装,能够与RXT的Server 安装在同一服务器上,也能够安装在不一样的服务器中

安装好后,最好使用SDK自带的Demo测试一下是否OK,若是不OK,则要检查安装是否有问题
2.1验证是否OK

若是能启动成功,则证实配置是OK的

排除安装问题外,则须要检查下面这三个文件的配置是否OK
SDK默认是安装的服务器能够访问的,若是您的SDK是安装在其它服务器上,则要经过配置三个XML文件,将SDK的服务器的IP添加在可容许访问的IP策略上.
文件名称:
AppConfig.xml AppConnConfig.xml SDKProperty.xml
AppConfig.xml

AppConnConfig.xml

SDKProperty.xml

三个文件修改后,要重启RTX的相关服务才能生效,建议能重启整台服务器最好.
3.客户端的安装

一切环境配置OK,就能够开始进行开发工做了.
安装好SDK后,就能够引用SDK安装中的相关dll
[b]集成开发[b]
1.首先要引用SDK中的组件,引用中的文件是在SDK的安装路径下,默认路劲:C:\Program Files\Tencent\RTXSSDK

引用后,就成了下面这样子的了

提示:在SDK的安装路径下还有个demo,这个demo能够很好的帮助咱们实现开发
2.在cs文件中引用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RTXSAPILib;
初始化服务器配置
浏览器
int retval;
//初始化服务器属性
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = "172.28.8.36"
//腾讯通服务器地址
RootObj.ServerPort ="8006"; //设置服务器端口
进行相关的代码操做
发送提醒消息服务器
///
/// 发送消息提醒
///
///
接收者:是rtx账号(即用户名),不能用rtx号码uid,多个用户之间用“;”隔开;接受者为空,则是发给全部人,与all效果同样,慎用!
///
标题
///
停留时间 0为等待用户关闭,以毫秒计
///
发送内容,自动识别连接:
隐式连接格式: [【查看详情】|www.baidu.com],不能加http:// ,不然不能弹出浏览器,并且“|”后面不能有空格
///
public static int SendNotify(string receiverAccount, string title, string holdtime, string content)
{
int retval;
//初始化服务器属性
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
try
{
RootObj.SendNotify(receiverAccount, title, 0, content); //
发送消息给接受者,注意,receiverAccount="",则是发给全部人,与all效果同样,慎用!这里接受者是rtx账号(即用户名),不能用rtx号码uid,多个用户之间用“;”隔开
retval = 1;
return retval;
}
catch (Exception xe)
{
retval = 0;
return retval;
}
}
发送IM聊天消息session
///
/// 发送IM
///
///
发送人
///
发送人密码
///
接收者,不能超过128人一次
///
发送内容
///
0为发送出错 1为成功
public int SendIM(string senderAccount, string password, string receiver, string content)
{
int retval;
//初始化服务器属性
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
//获致sessionkey
string sessionKey = GetSessionKey(senderAccount);
try
{
RootObj.SendIM(senderAccount, password, receiver, content, sessionKey);
retval = 1;
return retval;
}
catch (Exception xe)
{
retval = 0;
return retval;
}
}
获取sessionKeyasp.net
///
/// 根据帐号获取sessionKey
///
///
///
public static string GetSessionKey(string Account) //服务器端代码
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
string SessionKey = "";
RTXSAPILib.RTXSAPIUserAuthObj UserAuthObj = RootObj.UserAuthObj; //建立一个用户认证对象
try
{
SessionKey ="{"+ UserAuthObj.GetSessionKey(Account)+"}"; //经过用户认证对象获取SessionKey
}
catch (Exception ex)
{
return ex.Message.ToString();
}
return SessionKey; //返回SessionKey
}
检查用户在线状态测试
///
/// 检查用户状态
///
///
用户帐号
///
public static string QueryUserState(string userAccount)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
try
{
return RootObj.QueryUserState("德仔");
}
catch (Exception ex)
{
return "Error";
}
}
检查是否存在用户
网站
///
/// 检查是否存在用户
///
///
用户帐号
///
public static bool IfExist(string userAccount)
{
int retval;
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
try
{
return RootObj.UserManager.IsUserExist(userAccount);
}
catch (Exception ex)
{
return false;
}
}
删除用户ui
///
/// 删除用户
///
///
用户帐号
///
public static bool DeleteUserAccount(string userAccount)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//建立根对象
RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
try
{
RootObj.UserManager.DeleteUser(userAccount);
return true;
}
catch (Exception xe)
{
return false;
}
}
这里要注意的是:session key的格式要与RTX帮助文档中的key值的格式同样,不然就会出现发送IM的时候能看到IM但点击就会弹不出来的问题.格式是[color=red]"{"+md5值+"}+形式的
[/color]
以上的代码开发完成后,就能够测试效果了

是否是很欣慰啊?呵呵!

参考文档
RTX ASP.NET(C#) 结合的我的实践 能够OA平台的接口
http://blog.csdn.net/yunfan555/article/details/2978284
asp.net (C#) RTX(腾讯通) 接口应用 能实现与OA接口
http://www.cnblogs.com/sunjie9606/archive/2012/10/25/2738337.htmlspa