aliww開發文檔

plugin-gateway.jar文件中的修改

 

plugin-gateway/org/jivesoftware/openfire/gateway/protocols/aliww

目錄下aliwwSession aliwwTransport 兩個阿里旺旺的功能類

 

plugin-gateway/org/jivesoftware/openfire/gateway目錄下修改了

GatewayPlugin.Java文件,在其中添加了阿里旺旺的功能

 

plugin-gateway-jspc.jar文件的修改

 

org/jivesoftware/openfire/plugin/gateway

目錄下的gateway-registration.jsp gateway-settings.jsp 兩頁面中,也對阿里旺旺的功能做了相應的添加,使其能夠在Openfire中的插件中顯示aliww的註冊與設置其屬性

 

Gateway.jar 文件的修改

 

i18n 國際化語言 目錄的gateway_i18n_zh_CN.properties文件中 添加了阿里旺旺的相應的中文語言信息,在別的語言包中尚未添加

 

gateway/web/images目錄下添加了 顯示阿里旺旺的圖片

 

gateway/web/WEB-INF/options目錄下添加了 aliww.xml的配置文件,其中用來設置 aliww的主機 、端口、以及其他的一些信息

 

gateway/lib 目錄下 需要重新加載 aliww 對應的jar包(此包需要根據qqlumaqq.jar 進行修改,主要在於 aliww 使用的是 TCP 協議   q q 使用的是 UDP 協議,在其中的一個方法中進行判斷實現),

 

gateway/lib 目錄下 需要對plugin-gateway-jspc.jar Jarplugin-gateway.jar 文件進行修改更新

 

 

 

Spark需要的修改

 

Spark中添加aliww 的功能 添加一個 aliwwTransport

 

Spark.properties屬性文件中添加aliww的圖片

 

SparkRes.Java中添加阿里旺旺的圖片屬性

 

 

 

 

根據laumqq.jar包進行修改,創建一個aliww jar包,並 把各種插件重新打包,然後進行測試,

aliww的用戶名不需要驗證

aliww的協議是TCP方式

 

寫一個qq 或着 msn的測試類

 

使用ant 重新編譯修改後的gateway 插件

 

 

 

 

 

 

lumaqq.jar

QQClient1764行有一個Login(String server,int p)的方法,用此方法接收到 主機地址和端口號,是個登陸的方法;

 

QQClient1745行也同樣存在一個Login()方法,此方法也是用來執行登陸,此方法用於判斷用戶信息、該用戶是否已經登錄 以及 主機地址是否爲空的驗證,並根據需要判斷 使用UDP協議 還是 TCP協議 來登錄

 

QQPort 類中的 73 ,有一個 根據QQClient 創建 一個連接的方法,其寫法如下:此方法根據 提供的 QQClient 、用戶名、密碼、主機地址、端口號,來確定 該連接什麼樣的服務器 ,並返回一個已經連接好的服務器對象

 

public IConnection create(QQClient client, InetSocketAddress server, InetSocketAddress proxy, String username, String password, boolean start)

    throws IOException, UnknownHostException

  {

    IConnection conn = null;

    IConnectionPolicy policy = null;

    switch (0.$SwitchMap$edu$tsinghua$lumaqq$qq$QQPort[ordinal()])

    {

    case 1:

      policy = client.getConnectionPolicyFactory().createPolicy(client, this.name, 1, 1, proxy, username, password);

 

      int proxyType = client.getProxyType();

      if (client.getUser().isUdp()) {

        log.debug("連接UDP服務器: " + server);

        if (proxyType == 2) {

          log.debug("使用Socks 5代理 " + proxy);

          conn = client.getConnectionPool().newUDPSocks5Connection(policy, server, start);

          break label412: }

        conn = client.getConnectionPool().newUDPConnection(policy, server, start);

        break label412: }

      log.debug("連接TCP服務器: " + server);

      if (proxyType == 2) {

        log.debug("使用Socks 5代理 " + proxy);

        conn = client.getConnectionPool().newTCPSocks5Connection(policy, server, start);

        break label412: } if (proxyType == 1) {

        log.debug("使用HTTP代理 " + proxy);

        conn = client.getConnectionPool().newTCPHttpConnection(policy, server, start);

        break label412: }

      conn = client.getConnectionPool().newTCPConnection(policy, server, start);

 

      break;

    case 2:

      policy = client.getConnectionPolicyFactory().createPolicy(client, this.name, 2, 2, proxy, username, password);

 

      conn = client.getConnectionPool().newTCPConnection(policy, server, start);

      break;

    case 3:

    case 4:

      policy = client.getConnectionPolicyFactory().createPolicy(client, this.name, 4, 4, proxy, username, password);

 

      conn = client.getConnectionPool().newUDPConnection(policy, server, start);

    }

 

    label412: return conn;

  }

 

 

 

 

 

 

aliww.jar

用戶名不需要驗證,採用TCP協議,

發佈了14 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章