2015-05-09 28 views
1
  • 因此,我們假設我想製作一個twitter bot。我想向發送回覆的人發送一個特定的消息,所以我需要爲它發一個事件。顯然,一種方法是在一定的時間間隔內獲得所有回覆(或最後n個回覆),找出哪些是新的等等;但首先它不是實時的,並且需要額外的查詢才能找到新的推文。如何跟蹤和處理節點中的事件

  • 假設我們想跟蹤網站的一些變化。例如,我們想要在發生變化時立即處理事件。

我以前socket.io處理一些其他類型的活動,就像當一些變化的特定端口發生,但我無法弄清楚我該怎麼處理這些類型的事件。

+0

這是關於如何知道Twitter何時發生特定更改的問題? – jfriend00

+0

@ jfriend00我沒有特別詢問Twitter,但是這是我的第一個問題 – Yar

+0

好吧,如果您想主動通知某個其他網站的更改而不進行輪詢(例如,每隔xx秒重讀一遍),那麼你必須使用該網站的API,任何答案都將完全針對該API。所以,我無法確切地告訴你在問你是否沒有專門詢問Twitter。 – jfriend00

回答

0

「事件」一詞並不意味着你的想法!

  • 在DOM環境中,an Event是一個非常特殊的(和核心)概念,它允許您基於用戶與屏幕上元素的交互來編寫代碼。
  • 在的NodeJS,an Event是可以通過的events.EventEmitter
  • 在你的問題的實例來生成和發佈的東西,事件似乎是指任何在互聯網上氾濫,潛在的任何地方。

根據最後的定義,對於如何「跟蹤事件」,根本沒有單一的答案。

如果您想要編寫可以響應更改的代碼(這只是「對輸入做出反應」的更具體的版本),您需要創建一種機制來識別發生了更改,然後是機制觸發你想要在響應中運行的任何代碼(最後一部分是你通常會調用「發射」一個「事件」)。

對於某些情況,SocketIO完成了這兩件事情,使用協議的優化降級以明確地發出您可以監聽和處理的本地事件。它開始嘗試使用WebSockets,並最終回退到更昂貴的技術,如polling

只有當信息或更改的來源決定支持協議時,SocketIO才起作用。在這些情況下,源實際上是發送事件(通過websockets)並且socketIO監聽它。

如果您正在查找的信息源不支持websockets(並且未編碼以明確通知您的服務器發生更改),那麼您將不得不提出自己的解決方案。但是:您不應該將此視爲跟蹤「事件」的一種情況。相反,你正在觀察變化。

你如何看待變化將取決於變化的性質。一般你會爲它probably have to poll