腾讯RTX二次开发相关的一些注意事项

http://www.cnblogs.com/netWild/p/4241650.html

——————————————————————————————————————————————————————————————————————————————

在企业即时通信方面,腾讯的RTX在国内的占有率应该是很高的

所以,就避免不了要与其他系统进行消息集成

腾讯为此提供了二次开发的工具包,支持JAVA、C#、VB等多种开发语言

但是,目前为止,腾讯官方提供的开发包都是基于X86架构的,这个问题非常头疼

如果采用JAVA进行集成,并且基于64位的JDK,那么JNI是没有办法调用32位的RTX动态链接库的(DLL),会提示“SDK错误:连接到SDK服务器错误”

我开始时也是遇到了这个问题,尝试了许久,后来通过EMAIL向官方的技术支持进行询问,终于在更新了相关的链接库文件后顺利解决

在此期间,也尝试用.Net(C#)进行集成,虽然在兼容性上也会有64位和32位的问题,但可以通过在发布时指定为x86平台的方式解决

如果是WEB项目就更简单了,可以在应用池里设置32位兼容性选项

下面把集成过程中的一些重点环节进行记录,用于日后对自己有个交待:

1、从RTX官方下载完整安装包以及SDK开发包:http://rtx.tencent.com/rtx/download/index.shtml

2、在服务器上安装完整安装包中的RTX服务端程序:rtxserver2013formal.exe

3、在开发工作站上安装SDK开发包中的服务端二次开发支持:rtxserversdk2013formal.exe

4、修改服务器端IP地址允许规则:

  (1)采用JAVA方式集成,则修改:安装盘/Tencent/RTXServer/SDKProperty.xml:

    在APIClient下增加子节点:

    <IP>开发工作站IP地址</IP>

  (2)采用.NET方式集成,则修改:安装盘/Tencent/RTXServer/AppConnConfig.xml:

    在APIClient下增加子节点,内容同上

5、如果使用JAVA进行集成(可兼容32/64位环境):

  在开发工作站上,拷贝:安装盘/Tencent/RTXSSDK目录下所有的.dll文件,复制到:JDK安装目录/bin

  注意:如果使用的是64位的JDK,则还需要下载相应的链接库,分别覆盖到RTX服务端安装目录、System32、SysWOW64以及JDK/bin目录下。点此下载

  具体开发案例查看:安装盘/Tencent/RTXSSDK/demo source/server sample/java

  其中的“RTXServer SDK Java语言支持文档.doc”还是很详细的

  以下是发送消息提醒的案例代码,注意其中使用的端口号为:6000

  

import rtx.RTXSvrApi;

//...

RTXSvrApi rtxObj = new RTXSvrApi();
if (rtxObj.Init()) {
    rtxObj.setServerIP("RTXSDK的IP地址");
    rtxObj.setServerPort(6000);
    int iRet = 1;
    try{
        iRet = rtxObj.sendNotify("dong", "中文标题", "中文内容", "0", "0");
    }catch(Exception e){
        System.out.print(e.getMessage());
    }
    System.out.print(iRet);
}
rtxObj.UnInit();

6、如果使用.Net进行集成(可兼容32/64位环境):

  在应用中,引用:安装盘/Tencent/RTXSSDK/demo source/server sample/csharp demo/rootobj/RootObj/bin/Debug/Interop.RTXSAPILib.dll 即可

  该目录下还有官方提供的很多案例可供参考

  虽然没有类似JAVA中的说明文档有些可惜,但在使用上还是很简单的

  如果开发工作站是64位的操作系统,那么默认情况下还是会出现连接SDK服务器错误的问题

  不过可以通过以下两种方式进行解决:

  1)如果是桌面程序:可以在发布时选择面向x86平台,即可正常使用

  2)如果是WEB程序:可以在发布到的IIS中,配置所使用应用池的32位兼容选项为true即可正常使用

  以下是发送消息提醒的案例代码,注意其中使用的端口号为:8006

RTXSAPILib.RTXSAPIRootObj RootObj = new RTXSAPILib.RTXSAPIRootObj();
RootObj.ServerIP = "RTXSDK的IP地址";
RootObj.ServerPort = 8006;
try {
    RootObj.SendNotify(rtxId, mTitle, 0, mContent);
} catch (Exception e) {
    throw new Exception(err); //抛出异常
}
return ret;

7、注意事项

  1)JAVA方式通过调用SDKAPI.dll与SDK服务器中端口为6000SDKServer进行通信

  2).NET方式通过调用ObjectApi.dll与SDK服务器中端口为8006AppServer进行通信

  3)在开发工作站上,除了将RTX集成相关的链接库文件拷贝到运行时以外,没有必要将RtxServerApi.ini文件也拷贝过去,更没必要修改其中的SDK服务器的IP地址和端口,全部在程序中指定即可

  4)对于64位的JDK,或者.NET环境,需要特殊处理才行,具体方法见上面的使用说明

时间: 2024-10-21 14:11:58

腾讯RTX二次开发相关的一些注意事项的相关文章

RTX二次开发笔记2

问题一:关于DLL文件的引用 在安装文件夹内 APIObject.dll==>RTXSAPI.dll 服务器API接口 RTXCAPI.DLL ==> 客户端API接口 问题二:RTX二次开发运行代码 RootObj = new RTXSAPIRootObj();    //创建根对象 出现错误 检索 COM 类工厂中 CLSID 为 {79210E58-99EB-45D0-8890-763EFEAA143F} 的组件时失败,原因是出现以下错误: 80040154. 方法一: 调用com+的时

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

腾讯通RTX是(Real Time eXpert)是腾讯公司推出的企业级实时通信平台,致力于帮助企业提高运作效率.降低沟通成本.拓展商业机会,是一种高度可管理.低成本.易部署的IT平台.RTX集成了丰富的沟通方式,包括文本会话.语音/视频交流.手机短信.文件传输.IP电话.网络会议.以及应用程序共享.电子白板等远程协作方式. 公司OA系统中需要嵌入RTX,要实现在OA中发送待办事宜,能够单点登录,反向单点登录.所以就干起来! 这是第一篇,我们先做好开发前的准备. 先下载开发包,官网下载地址 ,我

RTX二次开发SDK需要注意的地方

1.如果是ASP.net二次开发调用的,线程池必须开发 Enable 32-bit Applications设置为true. 因为RTX的调用接口很多是32位的.否则会报一下错误 RootObj = new RTXSAPIRootObj();创建根对象时候报错,错误的描述如下:Retrieving the COM class factory for component with CLSID {79210E58-99EB-45D0-8890-763EFEAA143F}  failed due to

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

上一篇,我们讲到我开发环境的配置,还没配置好开发环境或再看一遍开发环境配置?接下来,我们开始coding...... 在coding之前,我们先添加引用. 我们在SDK的安装目录中引用这个文件. 引用之后,我们会在bin目录下看到这些dll文件. 之后,我们在在cs文件中引用 接下来,我们就可以真正进行coding啦. 先初始化服务器配置 int retval; //初始化服务器属性 RTXSAPILib.IRTXSAPIRootObj RootObj; RootObj = new RTXSAP

RTX二次开发集成

1,rtx服务器端有很多端口,二次发的程序与这些打开的端口交互.打开端口的方法在rtx服务管理器中,默认http服务未启用.需要手动启用http端口如下: 如果打开rtx服务器没有启用http的8012端口,则会报错:java.net.socket.ConnectException :connection refused 2,采用java的httpclient方式做信息交互. import java.io.BufferedReader; import java.io.InputStreamRea

RTX二次开发笔记1

在客户端,一个rtx用户给另一个rtx用户发送消息! 我的解决方案:在rtx服务端部署一个 wcf服务 或 webservice 服务,然后程序在客户端调用服务就行. 1,C#版 (服务端需要4个DLL) Interop.RTXCAPILib.dll Interop.RTXClient.dll Interop.RTXSAPILib.dll Interop.RTXServerApi.dll 下载地址: http://good.gd/1936542.htm 服务端: (需引用上述4个dll) [cs

微擎二次开发相关

微擎模块管理左侧的导航菜单(模块名称)封面入口:由模块设计(/web/index.php?c=extension&a=module&do=designer&)里的“功能封面”生成,a=cover. (模块名称)业务菜单:由模块设计里的“管理中心导航菜单”生成,a=entry模块设计完成后生成manifest.xml,安装模块的时候系统会根据manifest.xml文件中bindings部分内容,添加到ims_modules_bindings表中.导航菜单里的列表其实是显示ims_m

zimbra二次开发的相关资料

需求描述: 当前用户接受某约会邀请后,其free/busy状态会显示为busy:但用户设置外出,即outgoing或out off office时,其用户状态反倒显示free.管理层希望实现设置外出后,free/busy状态为busy或outgoing.这样就必须得到该用户的free/busy状态和outgoing设置. 以下为预研资料 zimbra支持二次开发和扩展 1.服务器端扩展,使用soap响应点,如增加账户等: 如果使用soap获取服务器端数据,目前在网上没有相关代码示例,只找到一篇通

微信公众平台搭建与开发(二)开发模式的搭建和关键词回复

在第一部分介绍了编辑模式,但是编辑模式有较大局限性,下面主要开始介绍开发模式,这一部门先简单介绍下开发模式的环境搭建和关键词回复. 开发模式首先要有一个虚拟主机,本人使用的是新浪开发者平台的虚拟主机,使用云豆计算流量,若成为新浪开发者用户基本上就可以免费使用了,本人注册用户所赠送的云豆不知道能用多久.当然国内比较大还有就是百度开发者平台,注册后发现部署还没有新浪的方便,并且在BAE3.0以后好像也是要收费的.有兴趣的朋友可以研究下google的开发者平台,不知道是否要收费. 在注册新浪开发者平台