zoukankan      html  css  js  c++  java
  • 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 FilesTencentRTXSSDK



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



    提示:在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

  • 相关阅读:
    C# Cache的类方法
    a href="javascript:void(0)"
    细数银行7大手续费 这些冤枉钱别再交了
    mysql 中order by 与group by的顺序
    java springboot 将html页面转成图片
    SpringBoot读取Resource下文件的几种方式
    在CentOS 6.X中安装中文字体
    第三方api调用HttpClient
    java通过html生成pdf,支持css和图片以及横向打印
    nginx配置静态文件和服务代理
  • 原文地址:https://www.cnblogs.com/chenyuwang2009/p/3747665.html
Copyright © 2011-2022 走看看