在開發,或是使用AnyChat Platform Core SDK的過程中,特別是在對AnyChat SDK不熟悉的情況下,遇到問題通常無從下手,這裏我們給出較通用的故障分析、排查和解決方案:
一、服務器部分
服務器程序啓動後,會在服務器程序所在目錄生成一個日誌文件:“AnyChatCoreServer.log”,典型的日誌文件內容如下:
1.
---------------------------Init
Service---------------------------
2.
Current
File Version[2, 8, 6, 2],Build
time
:2010-06-22
20:17:25
3.
Authorized
certification success!
4.
Run
Service
5.
Start
TCP Server Successed(port=8906)!
6.
Start
UDP Server Successed(port=8907)!
裏面記錄了服務器的版本信息,以及發佈時間,另外最重要的兩點,還記錄了授權信息是否驗證成功和當前啓動TCP和UDP的服務是否成功。
如果在服務器的配置文件中配置了SDK Filter (Plus)的接口,則也會在日誌文件中記錄加載是否成功。
通常服務器會遇到如下問題:
1、由於授權信息驗證失敗,而導致服務器啓動失敗。服務器啓動時,會讀取當前目錄下的授權證書文件(AnyChat.cer)並驗證是否有效,如果該文件丟失,或是授權信息不正確,均會導致啓動失敗,遇到該問題,請與我們的售後服務聯繫(附:聯繫方式);
2、由於端口被佔用導致服務器啓動失敗。如果服務器配置文件中所配置的TCP、UDP端口被別的程序佔用,或是啓動了多個服務器進程,都將會導致端口被佔用,遇到該問題,只需要關閉使用該端口的進程,或是在配置文件中修改端口號,然後重新啓動服務器程序即可;
3、服務器運行過程中出現異常,通常AnyChat服務器都能捕獲所產生的異常,將該異常發生點的內存進行轉儲爲文件,文件名爲“BRGVServerCrash.dmp”和“BRGVServerErrorLog.txt”,當異常發生後,請將這兩份文件提供給我們,將有助於我們快速定位故障點,並提供升級補丁程序。
二、客戶端部分
如果上層應用程序沒有主動關閉AnyChat SDK的日誌功能,則客戶端程序運行後,將會在應用程序當前目錄生成一個日誌文件:“BRAnyChatCore.log”,可用記事本打開,裏面記錄了SDK的版本號,發佈日期,啓動時加載庫文件是否成功的信息,以及上層應用調用AnyChat SDK的API接口信息,幷包含部分參數。
通常分析客戶端日誌文件可以解決大部分關於客戶端的不正常現象,包括:
1、不同的版本造成的異常:客戶端日誌會記錄SDK的版本信息,相關庫文件的版本信息和發佈時間,和正常日誌文件作對比,判斷是否由於版本的不同導致的不正常;
2、由於組件沒有註冊成功,或是相關組件(DLL文件)加載失敗,造成部分功能的不正常,如不能打開視頻,或是不能打開本地音頻採集設備,均可能是組件註冊,或是組件缺失所導致的;
3、由於調用參數的錯誤導致SDK不能正常工作,如連接服務器不成功,而服務器又是正常的情況,通常是傳入的IP地址,或是端口號不正確所導致的,該類問題可以分析日誌文件中所記錄的API傳入參數來查找原因;
4、由於API調用的順序問題而導致客戶端的異常:通過和正常的日誌文件進行對比,判斷API的調用是否存在問題。