綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[資訊] 別擔心 "Niantic Servers unstable, throttling API Calls." 的問題

 關閉 [複製連結] 查看: 8673|回覆: 31|好評: 0
跳轉到指定樓層
樓主
drek | 收聽TA | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
發表於 2016-8-31 06:32

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 drek 於 2016-8-31 06:34 編輯

根據原始碼中

  1. do
  2.   {
  3.   try
  4.     {
  5.       state = await state.Execute(session, cancellationToken);
  6.     }
  7.   catch (InvalidResponseException)
  8.     {
  9.       session.EventDispatcher.Send(new ErrorEvent
  10.       {
  11.         Message = "Niantic Servers unstable, throttling API Calls."
  12.       });
  13.     }
  14.   catch (OperationCanceledException)
  15.   ...
  16.         Message = "Current Operation was canceled."
  17.   ...
  18.   catch (Exception ex)
  19.   ...  
  20.         Message = "Pokemon Servers might be offline / unstable. Trying again..."
  21.   ...
  22.   }
複製代碼

這只是作者寫的一個取得已知例外狀況的功能
執行 try 的內容並等待回應,catch 三個已知的回應狀況,在視窗中顯示文字
我並不想詳解,但從這三個敘述來看

Niantic Servers unstable, throttling API Calls.
Current Operation was canceled.
Pokemon Servers might be offline / unstable. Trying again...

這個狀況應該只是用來確定連線的
應該是沒什麼好擔心的

用法:請參考連結 MSDN: try-catch (C#)
以上...
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 9碎鑽 +8 幫助 +8 收起 理由
yf94049 + 1 好內容。朕有賞,還不謝主隆恩.
edisonliu321 + 1 + 1 非常讃
咕比 + 1 + 1 非常讃
sulfuricapk + 1 + 1 非常讃
oZacDo + 1 + 1 非常讃
12340124 + 1 + 1 非常讃
kikiwki + 1 + 1 非常讃
a84568456 + 1 + 1 非常讃
johanna + 1 很給力!

查看全部評分

收藏收藏1 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

27
 樓主| drek | 收聽TA | 只看該作者
發表於 2016-9-3 22:18
o2o 發表於 2016-9-2 23:56
所以我這樣理解為,只要觸發這個Error,準備重新練一個新帳號嗎?

no 因為這是外掛開發人員寫的,觸發是你跑bot 就會送出
他屬於bot程式內的一部分  

不能只看 catch 到的東西, 因為送出指令也是bot送的
try-catch 不是字面上的嘗試捕捉
是 TRY 一個方法,去catch 可能的回應,然後顯示出來

好比說, 你寫信給 Niantic 申請解 ban 好了
你寫信 就是 try
要是N回你,我們需要查明後再處理 就可當是 unstable
要是N回你,我們嚴打外掛,不能接受你的請求 就可當是 canceled
要是你都沒收到回應,或是寄出去就收到無法寄出給N  這樣就可當作是 offline 了

可以接受嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

26
o2o | 收聽TA | 只看該作者
發表於 2016-9-2 23:56
由 手機網頁 發佈
所以我這樣理解為,只要觸發這個Error,準備重新練一個新帳號嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

25
edisonliu321 | 收聽TA | 只看該作者
發表於 2016-9-2 23:12
感謝大大講解!!之前謠言太多!!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

24
ertoic | 收聽TA | 只看該作者
發表於 2016-9-2 22:50
謝謝大大解惑 當初一直想問的
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

23
 樓主| drek | 收聽TA | 只看該作者
發表於 2016-9-2 22:40
chahao 發表於 2016-9-1 23:40
1. 自己蒐尋C# 式碼內的東西,看什麼會引發30分鐘?
(既然你要告訴大家沒問題,那可以麻煩您幫忙找出來告 ...

以遊戲角度來說,極少數會要追根究柢///
本是很欣賞您這種精神,才要您自行查閱... 查到就是你的

當初我在github看 issues 有提到這類問題,有人說這個從 0.8.x 開始就有了,也沒說為什麼
我就去把原始碼抓下來看一看,才知道是作者寫的 "送出特定的條件,用來抓取已知的結果"
不送這個條件,自然不會有結果,要是有就神了

沒想到呢... 是這樣?
沒看完全就算了,一直往30分鐘鑽
釣具、釣點都給您了,還要我把魚烤好餵您吃

30分 我猜是 N server 的 session timeout
重複執行 我猜是 do 迴圈造成的
無效的回應 我猜是作者寫的條件本來就會造成已知的結果
完整程式碼我不會貼, 它位於PoGo.NecroBot.LogicStateStateMachine.cs

我也忘了你還要問什麼了,回覆另一個版友的文,編輯補充還在審核
我不是很強,也不用自證明是對的,你看看就好,我只是一個 10多 年前 IM畢業的LOSER而已啦  
玩遊戲卡重要,下了班沒必要搞這麼複雜的事  
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

22
 樓主| drek | 收聽TA | 只看該作者
發表於 2016-9-2 20:41
本帖最後由 drek 於 2016-9-2 21:00 編輯
qwerttyyuu 發表於 2016-9-2 08:22
這篇文至少有兩點錯誤
第一,你貼出來的連結根本只解釋了try catch機制而已,這個有寫code的都會懂,
並不 ...

有人一直叫我不要接受看似合理確破綻百出的挑戰,沒那個必要
但...

第一
我從頭到尾都沒說他是用來解釋 30分鐘出現一次
我一直說了,想知道為什麼30分鐘自己搜尋摸索

況且什麼
do內要先try ,try 什麼?
  1. state = await state.Execute(session, cancellationToken);
複製代碼


好吧 你就一直要只看到 session  就算了
try-catch
你不 try 最好他會自己 catch...
他可是 do 下的內容,其上尚有繼承,我沒那個必要貼
這不是程式語言討論區

有寫 code的都懂? 那肯定不是你...

第二
原來你知道的 pause 是 "錯誤的"  不要print 在螢幕上而已?
真的不是暫停?  

你開機 按看看 pause ,最好繼續後直接進入作業系統,他偷偷在背景作業
你ping 168.95.1.1 -n 10 中間給我按看看 pause 看他是不顯示在螢幕上還是根本沒送出去

補:要真的只是不顯示的話,我按繼續他早跑到美國了不會暫停前在A點,數小時繼續他還在A點

你真的要確定他只是不顯示嗎?  還是有些暫停? 有些偷跑? 還是什麼鬼? 您可以說明一下嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

21
chahao | 收聽TA | 只看該作者
發表於 2016-9-2 09:00
感謝qwerttyyuu的說明,跟我當初只看到這一段try catch程式碼的想法是一致的。
這一段程式碼明明寫者try "session", catch "InvalidResponseException"
而且固定30 mins被觸發,基本上就不尋常,原作者含糊說法根本無法說服我
才提出疑問。

try
    {
      state = await state.Execute(session, cancellationToken);
    }
  catch (InvalidResponseException)
    {
      session.EventDispatcher.Send(new ErrorEvent
      {
        Message = "Niantic Servers unstable, throttling API Calls."
      });
    }

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

20
qwerttyyuu | 收聽TA | 只看該作者
發表於 2016-9-2 08:22
這篇文至少有兩點錯誤
第一,你貼出來的連結根本只解釋了try catch機制而已,這個有寫code的都會懂,
並不能用來解釋,為何固定30分鐘會出現ERROR,
況且code的意思是,從server來的message不能解讀的都會丟到這個exception裡,
至於內容是什麼東西,根本沒有說,
輕微的是確認連結,client是否還在線上,或者清清hashˊ之類的無關痛癢,
重者,可能是captcha,用來辨識是否是bot外掛,
這樣你還敢說沒事?
第二,觀念明顯有錯的,command line 介面按暫停又如何?
socket program只要 session尚未結束照樣是一直丟封包,
你按暫停只是叫他不要print在螢幕上而已,根本不是什麼暫停,
不信自己去抓wireshark看看封包有沒有出去跟進來,

最後,不要以會弄點專業term就出來裝高端,
去多學學再出來跟別人混,小鬼

點評

想回你更多,可惜編輯後進入審核? 無解...  發表於 2016-9-2 21:33
感謝說明,跟我當初看到try session, catch InvalidResponseException 這一段的想法是一樣的,這樣就合理多了。  發表於 2016-9-2 09:26

評分

參與人數 1幫助 +1 收起 理由
samwu + 1 讚一個!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 0

使用道具 舉報

19
vaca1 | 收聽TA | 只看該作者
發表於 2016-9-2 08:11
每隔半小時出現一次
應該是server端的問題
跟client端無關

評分

參與人數 1幫助 +1 收起 理由
samwu + 1 讚一個!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 0

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則