失敗是常見的。
對於初次接觸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'];那我們就查詢uc.php裡的test。最終發現當預設連線時候執行的**快。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))
根據個人情況的不同,這裡的**每個人可能得到的不一樣。認真研究一下就會發現問題出在**。
如果比較懶,看不懂,那就直接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...