2012-10-24 65 views
0

我想實現的是如何檢查到谷歌雲消息推送通知新的數據

服務器端(WCF服務使用JSON或ASP.NET頁面(我不知道我需要什麼還))

  1. 定期檢查來自現有頁面的HTTP請求的最新數據。 (這是一個動態頁面,不知道我在那裏,因此它不能發送更新。)
  2. 如果有任何關於該頁面發送POST請求,谷歌雲消息系統改變,有一個新的數據
  3. 客戶已註冊得到通知並獲得小於4 KB的有效載荷數據。

問題是#1如何在服務器端定期檢查新數據?如果這是一個桌面應用程序,我肯定會使用一個計時器。

我被困在這一點。可否請您讓我知道你認爲它應該像

感謝

回答

1

當你通過「檢查最新數據在從現有的網頁的HTTP請求」是什麼意思?是你的頁面,還是別人的?另外,爲什麼你認爲你的代碼需要在WCF服務或ASP.NET頁面中?從迄今爲止所告知的,這聽起來像一個常規的可執行文件。讓我們來回顧一下它會做:

  • 拉頁通過HTTP,檢查自從上次
  • 如果是這樣,如果改了,拉寄存器的客戶名單,發送GCM對他們

這兩項任務都不涉及提供網頁。如果這段代碼需要以某種方式與網站進行交互,那沒關係;但它不一定是該網站的一部分。它可以,但不一定。這就是說,純粹在Web服務器環境中運行計劃任務非常棘手,接近於不可能。這裏有多種調度設施(首先想到Windows任務計劃程序) - 但它們主要是執行程序 - 也就是獨立程序,即EXE。如果您絕對必須在Web服務器中運行此代碼,則可以編寫可執行的獨立文件(例如,在使用XMLHTTPRequest的JavaScript中,或cURL調用),以便向本地Web服務器發出HTTP請求,並調度所述腳本的調用在任務計劃程序中。

編輯:調度本身不能也不應該基於Web。調度引擎是Web服務的外部 - 大多數託管提供商都會在Windows任務計劃程序之上提供這樣的服務。檢查你的服務器的管理界面(CPanel,RDP或你有什麼)。

總之,從調度調用一個網頁,安排以下命令:

cscript.exe c:\SomePath\CallWeb.js 

凡CallWeb.js是這樣的:

var xh = new ActiveXObject("Msxml2.XMLHTTP"); 
xh.open("GET", "http://localhost/mypage.aspx", false); 
xh.send(); 

哪裏mypage.aspx是頁面獲取SonDepremler.aspx,解析,檢測更改併發送GCM。

這是您的問題#1的答案 - 您如何在託管的Web服務器環境中執行一些預定的處理。如果您遇到解決方案的其他部分,請分別提出問題。

+0

頁是不是我:http://www.deprem.gov.tr/sarbis/Deprem/SonDepremler.aspx既然我不能離開我的電腦打開我猜的服務器端應用程序將是需要的所有時間。就像你說的那樣,它可以是exe文件。但它會在哪裏運行?託管公司不會包含我的exe文件在他們的服務器上運行,他們會嗎? – mtekeli

+0

如果託管一個EXE是一個問題,那麼使用Web服務器中的邏輯,用一個預定的腳本調用它。如果不知道如何,我可以延長我的答案。儘管如果你的代碼是編譯好的ASP.NET,你的主機最終將託管很多可執行文件(如果是託管的)。 –

+0

是的。如果你可以提供一些基於web的例子,那將是很棒的。 – mtekeli