一、RTX簡介
RTX是騰訊公司推出的企業級即時通信平台。該平台定位於降低企業通信費用,增強企業內部溝通能力,改善企業與客戶之間的溝通渠道,創造新興的企業溝通文化,提高企業生產力。RTX平台的主要功能,包括企業內部實時信息交互、視頻語音網絡會議、企業短信中心、標准目錄服務支持等等。RTX平台具有很高的實用性、易用性和可管理性。除了底層采用128位對稱加密技術之外,在實際應用中,RTX可以通過員工實名制、記錄對外交互信息等措施,確保企業應用的通信安全。 同時,騰訊公司為所有的RTX用戶提供企業級的信息服務,主要包括企業黃頁、企業間協作、網絡IP電話、集團短信,以及企業與網絡消費者實時溝通等等服務。想了解更多騰訊通(RTX)的信息,請訪問:http://rtx.tencent.com
二、RTXSDK
RTX Server所提供的二次擴展功能,包括API接口的說明、二次擴展應用的實現、以及部分擴展功能的示例程序。通過本文檔,您可以了解到如何通過騰訊RTX Server所提供的API接口進行一些個性化的功能擴展以及應用集成。
騰訊RTX Server作為企業通信平台,一方面為企業提供豐富的即時通信功能(文本、音頻/視頻、文件)與服務(短信),另一方面為企業的其他應用提供了豐富的集成、擴展接口。基於Server API的擴展,可實現企業應用在即時通信、人機交互,以及無線應用方面的快速增強。
我們在UNIONMON中是調用RTX的API接口來進行開發的,SDK接口的測試源程序位於SDK安裝目錄下的Sample目錄,通過所提供的JAVA測試程序,可以快速了解、檢測SDK相關接口的功能。
三、消息發送原理:
通過GET或者POST方式將需要發送的消息和RTX用戶帳號,傳給RTX提供的cgi接口。
四、消息發送方法:
功能一:發送即時消息
1.調用方式:GET/POST URL:/sendnotify.cgi 用法舉例(IE地址欄中輸入): http://127.0.0.1:8012/sendnotify.cgi?msg=hello&receiver=wwjs
參數表:
receiver:接收者,用戶昵稱,多個接收者以“,”隔開。
msg:消息內容 ,如需要發隱式鏈接,格式如: [我的博客|http://www.baidu.com]
title:消息提醒的標題。
delaytime:消息提醒框的停留時間(毫秒),0表示不自動消失。
okurl:成功后IE自動定位到指定的url 格式類似為:okurl=www.baidu.com或者okurl=http://www.baidu.com 注意:這里的url必須為絕對地址。
errurl:失敗后IE自動定位到指定的url。
功能二:獲取用戶狀態
1.調用方式:http://127.0.0.1:8012/getstatus.php?username=yangbin
2.參數說明:username 需要獲取哪個用戶的狀態
功能三:給某個組群發RTX廣播消息
1.調用方式:http://127.0.0.1:8012/sendnotifybydepart.php?receiverdepart=運維開發組&msg=吃飯了&title=通知&online=1&delaytime=10000
2.參數說明:receiverdepart 需要給那個部門發送消息,該部門即在RTX中看到的組織架構中的部門名
msg:消息內容 ,如需要發隱式鏈接,格式如: [明朝|http://www.baidu.com]
title:消息提醒的標題。 【可省略】
online:是否只發在線用戶,默認只發給在線用戶。 【可省略】
delaytime:消息提醒框的停留時間(毫秒),0表示不自動消失,默認為0。 【可省略】
okurl:成功后IE自動定位到指定的url 格式類似為:okurl=rtx.tencent.com 或者okurl=http://tx.tencent.com 注意:這里的url必須為絕對地址。 【可省略】
errurl:失敗后IE自動定位到指定的url。【可省略】
功能四:給某個群群發RTX廣播消息
1.調用方式:http://127.0.0.1:8012/sendnotifybygroup.php?receivergroup=M4開發群&msg=吃飯了&title=通知&online=1&delaytime=10000
2.參數說明: receivergroup 需要給那個群發送廣播消息,即RTX群
msg:消息內容 ,如需要發隱式鏈接,格式如: [明朝|http://www.baidu.com]
title:消息提醒的標題。 【可省略】
online:是否只發在線用戶,默認只發給在線用戶。 【可省略】
delaytime:消息提醒框的停留時間(毫秒),0表示不自動消失,默認為0。 【可省略】
okurl:成功后IE自動定位到指定的url 格式類似為:okurl=rtx.tencent.com 或者okurl=http://tx.tencent.com 注意:這里的url必須為絕對地址。 【可省略】
errurl:失敗后IE自動定位到指定的url。【可省略】
五、注意事項
1.參數msg中如果包含中文那么需要將msg的編碼方式轉換成GBK或者GB2312,msg是不支持UTF-8編碼方式的。
2.參數msg如需要加入超鏈接格式為:[點我跳轉|http://www.baidu.com]
3.參數msg中不能出現空格,如果需要空格可用【+】替代。
4.如果請求的url中包含特殊字符,那么需要使用urlencode(),來對url進行編碼,否則可能導致超鏈接顯示不正常。
5.發送消息是需要權限的,這個需要在RTX服務端配置才能發送消息。
六、問題建議
1.對msg進行轉碼的時候用GBK不要用GB2312,因為GB2312支持的漢字比較少,很多比較偏的漢字會無法顯示,導致消息被中斷(即用戶只能收到這個中斷前的字符)。
2.在對消息進行轉碼的時候,可以考慮加入參數IGNORE,即$msg=iconv(“utf-8″,”gb2312//IGNORE”,$msg)這樣在轉碼的時候將會忽略錯誤字符。會將錯誤字符后面的繼續轉碼。
3.在RTXServer服務端的WebRoot目錄下放着很多的cgi和php文件。這些文件都是可以用HTTP方式來訪問的,你也可以自己編寫新的cgi或者php文件,然后將其放到改目錄下即可。這樣將可能提供非常強大的擴展功能。
4.解決中文發送問題:
在SendNotify.cgi(C:\Program Files\Tencent\RTXServer\WebRoot\SendNotify.cgi)加上以下語句:
$msg = iconv("utf-8","gbk", $msg);
$title = iconv("utf-8","gbk", $title);
$receiver = iconv("utf-8","gbk", $receiver);
5.解決IP受限問題:
在SDKProperty.xml(C:\Program Files\Tencent\RTXServer\SDKProperty.xml)
如果需要在其它計算機上使用SDK包,必須將這台計算機的IP192.168.17.1地址也加入,如下代碼,在<APIClient>段。
<APIClient>
<IPLimit Enabled="1">
<IP>127.0.0.1</IP>
<IP>192.168.17.1</IP>
</IPLimit>
</APIClient>
如果添加遠程訪問機器的IP地址,如下代碼,允許192.168.17.2通過http方式訪問cgi文件。
<sdkhttp>
<IPLimit Enabled="1">
<IP>192.168.17.1.2</IP>
</IPLimit>
</sdkhttp>
七、RTX服務器遷移或者RTX服務器系統重裝注意事項
1、RTX服務器遷移或者RTX服務器系統重裝前,需注意備份如下數據:
(1)、在RTX管理器–“用戶管理”–“用戶數據導入導出”,選擇導出按鈕將RTX的用戶數據導出,格式為xml。
(2)、備份用戶群數據和用戶照片,分別保存在db\disgroup_db.mdb和files\infoserver\userphotofiles。一般情況下,用戶數據導入導出功能導出的xml格式用戶數據在導入到RTX以后,用戶群數據和角色數據都會自動導入的,此步備份的目的是當導入用戶數據失敗時,可以將這兩個數據復制到相應位置用於還原。建議將db\和config\下的所有文件備份;
(3)、如果后台數據庫為SQL,通過SQL管理器備份用戶數據庫,如果沒有第三方應用,RTX后台數據庫建議直接使用默認的ACCESS。
2、RTX服務器安裝完成后,需注意以下幾點:
(1)、先導入授權文件,保證所有服務都已經正常啟動再做余下的操作;
(2)、導入xml格式用戶數據時,注意要先選擇“RTX2005及以后版本數據導入”;
(3)、如果部署環境是內網的RTX服務器發布到公網,需在“配置向導”–“服務運行狀態”–“高級配置”–“客戶端登錄服務器的地址”增加公網IP地址,否則公網用戶可能無法發送圖片和文件;
(4)、停止服務器“服務運行狀態”中所有服務,使用記事本打開服務器安裝目錄*:\Program Files\Tencent\RTXServer\config\rtxserver.xml ,把相應端口的IP地址全部改為127.0.0.1(8009端口的例外),保存文件后再重新啟動所有服務;
(5)、遇到公網用戶無法自動升級的情況,需先在RTX管理器中停止所有服務,然后打開安裝目錄中config下的rtxserver.xml,找到8009端口對應的IP,將IP改為公網IP,RTX管理器的“服務運行狀態”urgradesvr自動升級服務器配置也做相同的更改,最后啟動所有服務。更改后公網用戶可以自動升級,但內網用戶就無法自動升級了,需要根據實際應用情況權衡。
參考博客:《使用web向RTX發通知 》
另附,RTX官方SDK說明:http://rtx.tencent.com/sdk/