Asp.Net 集成RTX(腾讯通)开发实践

这篇文章非常好,最重要的是后面有实现的代码,很实用,直接用到自己系统中了

引用网址:http://www.dezai.cn/Blog/article.asp?id=478

做完这个集成这后,还是感觉挺有意思的,毕竟公司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聊天消息

///
      
/// 发送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;
              
          
}
      
}

获取sessionKey

///
       ///
根据账号获取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;
          
}
      
}

删除用户

///
      
/// 删除用户
       ///
       /// 用户账号
      
/// 
      
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.html

时间: 2024-11-13 20:00:08

Asp.Net 集成RTX(腾讯通)开发实践的相关文章

企业使用RTX腾讯通2013 v8.3.838.2

腾讯通基本上成为了公司的默认配置,确实缺不了,这里记录一篇配置RTX,包括服务端和客户端. 1.客户端的使用 1.1 一般使用人员不需要关心任何事,只需要登录管理员分配给你的账户密码即可使用.需要指向一下服务器地址,见1.2 1.2 在登录之前需要指向服务器地址,这里服务器地址是210.10.3.98,端口号默认为8000,一般使用UDP因为速度快,企业总机号也是默认的,一般不需要配,就是要配管理员也会告诉你,最简单的方法就是看看同事怎么配你就怎么配 这里附一张我们公司系统的RTX,我自己使用的

腾讯通RTX 手机安卓版试用

提到腾讯通RTX,很多朋友都耳熟能详,因为这是每天工作联络的必须品,同事间交流及传送文件都需要用到的工具.但提到RTX腾讯通手机版,不免会产生很多疑问.RTX还有手机版?带着这样的疑问,接下来就由昆明国防路百信手机大全为大家分享. 首先安装到手机.RTX手机版也延续了腾讯众多手机产品的特点,体积小权限多.安装完毕之后首次打开会看到"企业通讯录"的大Logo. 进行登录了,由于是需要"总机号",而非PC端的服务器地址,不清楚总机号的同学请询问本公司网管.登录后会看到底

金笛短信平台与腾讯通RTX实现完美集成,助力企业办公更高效更轻松

金笛短信平台作为企业办公协同应用平台,越来越受到大中型企业办公的青睐.这不单是因为金笛短信平台本身的稳定性和易用性,更是客户被金笛短信平台同时支持短信设备和网关发送的功能优势所吸引,同时使用设备和网关发送,互相切换.互为备份,为企业高效稳定办公保驾护航~~ 去年年底,作为大型集团公司的鲁能集团旗下某北京分公司,在对市场众多短信平台进行了详细认真的市场调研.功能确认.整体性能测试后,金笛短信平台系统以性能稳定.易操作易管理等优势一举脱颖而出,日前已经成功上线. 一.背景需求&调研 鲁能集团旗下某北

安装腾讯通 rtx 老是提示用户名密码错误

在自己机器上安装rtx服务器和客户端 测试 系统是win7  64 旗舰版 从企鹅上下载的2013 rtx 服务端和客户端 账户用的是普通用户user 在安装rtx服务端时候 会在桌面上出现一个rtxinstall.txt的文件 里面提示大量的 指定服务未安装 在qq群里问了人  有人说是因为 没有权限 改用administrator账户 安装就没问题了 给企鹅打电话一直没人接 耗费了我好久的时间 这是我第一次记录工作笔记,我以后会每天记录自己在工作和学习过程中遇到的问题和做过的项目,写给未来的

腾讯通RTX 2013 正式版许可高级自定义服务【支持手机客户端】

最新版本高级自定义服务后支持手机客户端(安卓和苹果智能手机) 手机客户端支持两套插件:1.通过总机号间接连接  2.通过服务器端口直接连接 说明:仅此0410版支持手机客户端其他版本均不支持,请购买者认真考虑. 新特性 消息管理器查询时间选项细化,增加两个选项. 群会话加入最近联系人列表,通过最近联系人直接发起群会话. 自定义组允许添加互联企业外部多人会话. 解决消息管理器无法发起互联企业外部单人会话. 群增加屏蔽功能. 外部会话增加屏蔽功能. 对登录是程序界面卡顿进行了优化. 新增会话窗口崩溃

腾讯通RTX 群扩展插件 正式版许可授权

腾讯通 RTX 状态感知插件 正式版许可授权 此许可授权包含自定义总机号.授权使用时间至永久,授权用户数999. PS:感兴趣的朋友可以先到官网下载试用版进行功能测试,使用上满意后再来此处进行购买许可授权. 随着RTX企业用户的增大,越来越多的群组讨论在企业中普遍,但是RTX中的群需要在服务器添加,这样大大的受到局限:且群组没有资料共享库,资料不能及时共享:不能发布群公告等制约因素. 群功能扩展插件就是专门了为了解决上述问题设计的,使用之后,用户可以在客户端实现所有操作,实现群成员资料共享,大大

麦讯通接口开发api文档

1.今天公司做了短信验证码功能: 2.在网上找了一下接口,使用的麦讯通的接口: 3.为了方便后期的使用,现将api文档上传: 4.下载地址:http://download.csdn.net/detail/u011431550/8641775

腾讯敏捷开发及快速迭代

腾讯敏捷开发及快速迭代 http://www.edu-hb.com     2013-6-4 15:23:50     来源: itwriter      从 2006 年开始,腾讯的研发规模开始膨胀,开发模式急需规范和标准化,到底走 IPD(集成产品开发)还是 Agile(敏捷)的开发路线,公司管理层也在为拿不定主意而犯愁,之后研发管理部开始与 ThoughtWorks 公司接触,逐渐将敏捷产品开发引入进来,并正式命名为 TAPD(Tencent Agile Product Developme

PDA手持终端集成一体打印 二次开发

PDA手持终端集成一体打印 二次开发支持 VS2008或VS2005开发工具 c#或C++开发语言 Mobile6.5,支持GSM通话,GPRS,EDGE网络;内置wifi,蓝牙,gps商场单品管理小票打印等仓储以及物流管理终端 POS,移动POS机,打印PDA,打印掌上电脑,小票打印,小票打印机 手持POS打印智能终端采用Mobilie6.5操作系统,GSM/GPRS电话功能,WIFI,BT,14443AB RFID读写模块,远距离红光条码扫描模组,200万摄像头,2英寸热敏打印头.为一款工业