當Ucenter和應用通訊失敗

2022-04-17 07:40:29 字數 1306 閱讀 4146

失敗是常見的。

對於初次接觸ucenter的人來講,新增乙個自己的應用最頭疼的就是發現通訊失敗。

如果要解決這個問題,首先要了解ucenter是如何和應用進行通訊的。

只有知道了ucenter和應用之間如何通訊,我們才能找到通訊失敗的原因。

那讓我們從源頭找起吧!

如果用火狐來輔助查詢通訊失敗的源頭會更加簡單一些【我可不是給火狐做廣告啊!它真的是太好用了】。

我們先來看看是誰輸出了通訊失敗四個字:

在火狐中右鍵->本幀->檢視幀源**【注意,要在「通訊失敗」附近】。如圖:

然後在源**中查詢應用訪問位址。找到通訊失敗所在位置。

請注意,通訊失敗四個字是有js生成的。直接查詢通訊失敗是找不到的。

認真研究一番之後,我們發現通訊失敗是由類似如下**生成的:

這個方法叫做onping。我們分析一下發現關鍵在這個地方:

if($status == '1')  else
if($status == '1')  else
注意我們把輸出的ok或者false替換成了上邊的url。在管理後台檢視一下應用列表:

呵呵,位址出來了!我們把失敗的位址和成功的位址分別複製到位址列進行訪問。

潔白的頁面上如果只有個1,就表示成功。如果是其他的東西就表示失敗了!

既然我們知道了訪問的真實位址,那麼就去看看這個位址是如何告訴ucenter通訊成功還是失敗的。

開啟應用目錄api裡的uc.php之後我們注意到它首先對get過來的code進行解碼,得到動作指令後進行響應:

$code = $_get['code'];

parse_str(authcode($code, 'decode', uc_key), $get);//先做解密,就是url?code後邊那一長串。

if(magic_quotes_gpc)

//print_r($get);

//exit;

if(time() - $get['time'] > 3600)

if(empty($get))

那我們就查詢uc.php裡的test。最終發現當預設連線時候執行的**快。

根據個人情況的不同,這裡的**每個人可能得到的不一樣。認真研究一下就會發現問題出在**。

如果比較懶,看不懂,那就直接deleted…然後echo 1;欺騙一下ucenter。看到通訊成功的小對勾,心裡舒服多了吧。

個文章只是告訴你為什麼會失敗。如何獲得成功的字眼。到底通訊成功和失敗會有什麼影響不在本文討論範圍之內。

最後,我們再來清洗一下ucenter和應用之間如何互動:

當Ucenter和應用通訊失敗

失敗是常見的。對於初次接觸ucenter的人來講,新增乙個自己的應用最頭疼的就是發現通訊失敗。如果要解決這個問題,首先要了解ucenter是如何和應用進行通訊的。只有知道了ucenter和應用之間如何通訊,我們才能找到通訊失敗的原因。那讓我們從源頭找起吧!如果用火狐來輔助查詢通訊失敗的源頭會更加簡單...

ucenter通訊失敗和不能登入的解決

對於ucenter真是讓人不省心,修改一下url,就通訊失敗了。1 通訊失敗 然後後來怎麼也改不好了,後來一步一步打log,發現是uc server和uc client不一致。cache array id 應用裡的id array id 應用裡的id type discuzx name discuz...

應用通訊 feigen和 restTemplate

feigen 1 依賴 org.springframework.cloud spring cloud starter feign 2 用法 啟動類 enablefeignclients 介面處package com.order.client import org.springframework.cl...