上一篇,我们讲到我开发环境的配置,还没配置好开发环境或再看一遍开发环境配置?接下来,我们开始coding......

在coding之前,我们先添加引用。

我们在SDK的安装目录中引用这个文件。

引用之后,我们会在bin目录下看到这些dll文件。

之后,我们在在cs文件中引用

接下来,我们就可以真正进行coding啦。

先初始化服务器配置

int retval;
//初始化服务器属性
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = "172.0.0.1" RootObj.ServerPort ="8006"; //设置服务器端口

然后进行相关的代码操作,我写了一部分实现的代码,大家可以根据SDK文档写自己的代码。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using RTXSAPILib;
using System.Data;
using System.Configuration;
/// <summary>
/// RTXactive 的摘要说明
/// </summary>
public class RTXactive
{
private static string Ip = ConfigurationManager.AppSettings["rtxServerIP"]; //RTX服务器IP地址 127.0.0.1
private static short Iport = Convert.ToInt16(ConfigurationManager.AppSettings["rtxServerAppPort"]);//RTX服务器端口,8006;
/// <summary>
/// 发送消息提醒(待办事宜)
/// </summary>
/// <param name="receiverAccount">接收者</param>
/// <param name="title">标题</param>
/// <param name="holdtime">停留时间 0为等待用户关闭,以毫秒计</param>
/// <param name="content">发送内容,自动识别链接</param>
/// <returns></returns>
public static int SendNotify(string receiverAccount, string title, string holdtime, string content)
{
int retval;
//初始化服务器属性
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口 try
{
RootObj.SendNotify(receiverAccount, title, , content); //获取版本信息
retval = ;
return retval;
}
catch (Exception xe)
{
retval = ;
return retval;
}
}
/// <summary>
/// 发送IM聊天消息
/// </summary>
/// <param name="senderAccount">发送人</param>
/// <param name="password">发送人密码</param>
/// <param name="receiver">接收者,不能超过128人一次</param>
/// <param name="content">发送内容</param>
/// <returns>0为发送出错 1为成功</returns>
public int SendIM(string senderAccount, string password, string receiver, string content)
{
int retval; //初始化服务器属性
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
//获致sessionkey
string sessionKey = GetSessionKey(senderAccount);
try
{
RootObj.SendIM(senderAccount, password, receiver, content, sessionKey);
retval = ;
return retval;
}
catch (Exception xe)
{
retval = ;
return retval;
}
}
/// <summary>
/// 获得session
/// </summary>
/// <param name="Account">账号</param>
/// <returns></returns>
public static string GetSessionKey(string Account) //服务器端代码
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
string SessionKey = "";
RTXSAPILib.RTXSAPIUserAuthObj UserAuthObj = RootObj.UserAuthObj; //创建一个用户认证对象
try
{
SessionKey = "{" + UserAuthObj.GetSessionKey(Account) + "}"; //通过用户认证对象获取SessionKey
}
catch (Exception ex)
{
return ex.Message.ToString();
}
return SessionKey; //返回SessionKey
}
/// <summary>
/// 添加用户
/// </summary>
/// <param name="bstrUserName">用户名</param>
/// <param name="lAuthType">用户类型</param>
/// <returns></returns>
public static int AddUser(string bstrUserName, int lAuthType)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.UserManager.AddUser(bstrUserName, lAuthType);
return ;
}
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 删除用户
/// </summary>
/// <param name="userAccount">用户账号</param>
/// <returns></returns>
public static bool DeleteUserAccount(string userAccount)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.UserManager.DeleteUser(userAccount); return true;
}
catch (Exception xe)
{
return false; }
}
/// <summary>
/// 设置用户密码
/// </summary>
/// <param name="bstrUserName">用户名</param>
/// <param name="bstrPwd">密码</param>
/// <returns></returns>
public static int AddUser(string bstrUserName, string bstrPwd)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.UserManager.SetUserPwd(bstrUserName, bstrPwd);
return ;
}
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 检查是否存在用户
/// </summary>
/// <param name="userAccount">用户账号</param>
/// <returns></returns>
public static bool IfExist(string userAccount)
{
int retval;
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
return RootObj.UserManager.IsUserExist(userAccount);
}
catch (Exception ex)
{
return false;
}
} /// <summary>
/// 检查用户在线状态
/// </summary>
/// <param name="userAccount">用户账号</param>
/// <returns></returns>
public static string QueryUserState(string userAccount)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
return RootObj.QueryUserState(userAccount); }
catch (Exception ex)
{
return "Error";
}
}
/// <summary>
/// 用户名转换为RTX帐号
/// </summary>
/// <param name="bstrUserName"></param>
/// <returns></returns>
public int UserNameToUin(String bstrUserName)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport;
try
{
return RootObj.UserManager.UserNameToUin(bstrUserName); }
catch (Exception e)
{
return ;
}
}
/// <summary>
/// RTX帐号转换为用户名
/// </summary>
/// <param name="lUin"></param>
/// <returns></returns>
public string UinToUserName(int lUin)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport;
try
{
return RootObj.UserManager.UinToUserName(lUin); }
catch (Exception e)
{
return "noUin";
}
}
/// <summary>
/// //添加部门
/// </summary>
/// <param name="DeptName">部门名</param>
/// <param name="ParentDeptId">父部门ID</param>
/// <returns></returns>
public int addDept(String DeptName, String ParentDeptId)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.DeptManager.AddDept(DeptName, ParentDeptId);
return ;
}
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 删除部门
/// </summary>
/// <param name="DeptName">部门名</param>
/// <param name="ifDelectChild">是否删除子部门</param>
/// <returns></returns>
public int deleteDept(String DeptName, bool ifDelectChild)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.DeptManager.DelDept(DeptName, ifDelectChild);
return ;
}
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 修改部门名
/// </summary>
/// <param name="DeptName">旧部门名</param>
/// <param name="newDeptName">新部门名</param>
/// <returns></returns>
public int setDept(String DeptName, string newDeptName)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.DeptManager.SetDeptName(DeptName, newDeptName);
return ;
}
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 查看部门名是否存在
/// </summary>
/// <param name="DeptName">部门名</param>
/// <returns></returns>
public int deptIsExist(String DeptName)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
if (RootObj.DeptManager.IsDeptExist(DeptName))
{
return ;
}
else
{
return ;
} }
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 获取部门下的所有用户
/// </summary>
/// <param name="bstrDeptName">部门名</param>
/// <returns></returns>
public String getDeptUsers(String bstrDeptName)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
string DeptUsers = "";
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
DeptUsers = RootObj.DeptManager.GetDeptUsers(bstrDeptName);
return DeptUsers;
}
catch (Exception ex)
{
return "noUser";
}
}
/// <summary>
/// 将用户添加到部门下
/// </summary>
/// <param name="bstrUserName">用户名</param>
/// <param name="bstrSrcDeptName"></param>
/// <param name="bstrDestDeptName"></param>
/// <param name="bIsCopy"></param>
public void AddUserToDept(String bstrUserName, string bstrSrcDeptName, string bstrDestDeptName, bool bIsCopy)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.DeptManager.AddUserToDept(bstrUserName,bstrSrcDeptName,bstrDestDeptName,bIsCopy);
}
catch (Exception ex)
{ }
}
/// <summary>
/// 设置用户信息
/// </summary>
/// <param name="bstrUserName">用户id</param>
/// <param name="bstrName">姓名</param>
/// <param name="lGender">性别</param>
/// <param name="bstrMobile">电话</param>
/// <param name="bstrEMail">邮箱</param>
/// <param name="bstrPhone">手机</param>
/// <param name="lAuthType">权值</param>
public void SetUserBasicInfo(String bstrUserName, string bstrName, int lGender, string bstrMobile, string bstrEMail, string bstrPhone, int lAuthType)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.UserManager.SetUserBasicInfo(bstrUserName, bstrName, lGender, bstrMobile, bstrEMail, bstrPhone, lAuthType);
}
catch (Exception ex)
{ }
}
/// <summary>
/// 将用户从部门中删除
/// </summary>
/// <param name="bstrUserName">用户名</param>
/// <param name="bstrDestDeptName">部门名</param>
public void DelUserFromDept(String bstrUserName, string bstrDestDeptName)
{
RTXSAPILib.IRTXSAPIRootObj RootObj;
RootObj = new RTXSAPIRootObj();
//创建根对象
RootObj.ServerIP = Ip;
RootObj.ServerPort = Iport; //设置服务器端口
try
{
RootObj.DeptManager.DelUserFromDept(bstrUserName, bstrDestDeptName);
}
catch (Exception ex)
{ }
}
}

RTX基本操作(发送待办事宜、发送消息,增删改查用户、部门)的代码就在这啦,后面咱将还有两篇,一个是RTX单点登录,一个是RTX反向单点登录。

这次还是一样,有问题可以留言哈。

RTX二次开发(二)(基于ASP.NET)的更多相关文章

  1. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  2. Linux基于webRTC的二次开发(二) 实现远程桌面共享

    webRTC中的desktop_capture模块提供了捕获桌面和捕获窗口的相关功能,而实现远程桌面共享功能需要将desktop_capture捕获的画面作为peerconnection的视频源,下面 ...

  3. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 为Domain Model添加约束 前一部分, 我们已经把数据库创建出来了. 那么我们先看看这个数据库 ...

  4. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(3)

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.html 由于 ...

  5. Jmeter二次开发——基于Java请求

    简述 这近几年,越来越多非http的协议需要进行性能测试,包括不仅限于各类rpc.mq.缓存等.对于这些协议,市面上可能没有现成的工具可以直接使用,这个时候,我们可以自己动手,通过编写相应的JavaS ...

  6. 微控工具xp模块-开发版[微信(wechat)二次开发模块]

    http://repo.xposed.info/module/com.easy.wtool   微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方 ...

  7. EasyDSS点播与直播服务器软件-二次开发接口对接说明示列

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作.其中,点播版本主要包含:上传.转码.分发.直播版本,主要包含:直播.录像, 直播支持RTMP输 ...

  8. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器软件二次开发接口对接说明示列

    EasyDSS相关功能 EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作.其中,点播版本主要包含:上传.转码.分发.直播版本主要包含:直播.录像 ...

  9. RTX二次开发(一)(基于ASP.NET)

    腾讯通RTX是(Real Time eXpert)是腾讯公司推出的企业级实时通信平台,致力于帮助企业提高运作效率.降低沟通成本.拓展商业机会,是一种高度可管理.低成本.易部署的IT平台.RTX集成了丰 ...

  10. cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(二)

    cWeb是基于微软的.Net Framework 4框架,数据库是sql server 2008 r2. cWeb开发框架下载,点击这里去下载. cWeb开发框架借鉴三层架构理论分为三层,分别是:cD ...

随机推荐

  1. bestcoder杯回顾

    题目列表:hdu5214~5223 5214: 当时第一反应是由递推公式推出通项公式,事实证明这就是作!大!死! 因为通项公式是这样的:L[n]=a^(n-1)*(b+L[1])-b 于是就需要快速幂 ...

  2. karottc A Simple linux-virus Analysis、Linux Kernel <= 2.6.37 - Local Privilege Escalation、CVE-2010-4258、CVE-2010-3849、CVE-2010-3850

    catalog . 程序功能概述 . 感染文件 . 前置知识 . 获取ROOT权限: Linux Kernel <= - Local Privilege Escalation 1. 程序功能概述 ...

  3. WebConfig节点详解

    <!-- Web.config配置文件详解(新手必看) 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法. 很适合新手参看,由于Web.config在使用很灵活,可 ...

  4. JavaScript制作时钟特效

    需求说明:制作显示年.月.日.星期几并且显示上午(AM)和下午(PM)的 12进制的时钟,具体效果如下所示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C// ...

  5. django rest framework

    Django-Rest-Framework 教程: 4. 验证和权限 作者: Desmond Chen, 发布日期: 2014-06-01, 修改日期: 2014-06-02 到目前为止, 我们的AP ...

  6. python实现Linux启动守护进程

    python实现Linux启动守护进程 DaemonClass.py代码: #/usr/bin/env python # -*- coding: utf-8 -*- import sys import ...

  7. JQuery------Select标签的各种使用方法

    optioin属性(value) <option value='>Hello</option> option的点击事件 <select class="s-one ...

  8. bootstrap的学习-基础样式和排版一

    一.列表去除样式和横排排列 classs="list-unstyled","list-inline" 二.[表格].table 类指定基本样式,.table-s ...

  9. Java @Override报错

    问题 如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误:The method *** of type *** must override a superclass ...

  10. webkit的一些不为人知的高级属性

    1.-webkit-tap-highlight-color   tap按钮或者链接时,就会出现一个半透明的灰色背景,设置属性: -webkit-tap-highlight-color:transpar ...