文章訂閱   FeedBurner  FeedSky  Twitter

Push4Free – 免費提供的聊天伺服器

Posted by Arguo

Push4Free 是一套專為 real-time 聊天需求所開發的服務,它提供了一組 API 讓開發者可以自行撰寫應用程式來連接到 Push4Free 的伺服器,作為聊天訊息的傳送。簡單來說,Push4Free 可以幫開發者解決聊天伺服器的負載問題,但更方便的是,Push4Free 提供了 Flash、JavaScript、.NET 等的 API 解決方案,不只能應用在視窗應用程式,更可以用在眾多的瀏覽器上。疑?JavaScript?是的,但是並不是只有 JavaScript,Push4Free 提供的 JavaScript 解決方案,事實上也需要搭配 Flash 的技術,才能夠從聊天伺服器「主動」的丟聊天訊息給瀏覽器。

這是為甚麼呢?為甚麼要搭配 Flash 才能夠「主動」的丟訊息呢?

有開發過 web application 程式的讀者們,應該都很了解 HTTP 協定一種「單向的協定」,也就是說,瀏覽器可以主動跟 HTTP 請求頁面資料,但是 HTTP 伺服器不能主動對瀏覽器請求傳送頁面資料。要達到即時頁面更新的技巧,能做的只有「輪詢」(Polling)的方法了,在近十年前,最簡單的技巧就是用 HTML 的 refresh meta tag [1]。近幾年,使用背景連線的 XMLHttpRequest 元件是蠻常見的做法,這也是 Ajax 技術賴以維生的基礎。

所以說,當你在瀏覽這篇文章的時候,瀏覽器可以要求 HTTP 伺服器傳送網址 “http://blog.miife.com/2009/05/push4free.html” 的頁面資料。不過,當你看到頁面上的 Google 廣告不斷輪替的時候,絕對不是 HTTP 伺服器「很厲害」的主動送新的 Google 廣告進來,而是這個頁面上的 JavaScript 背地裡又要求 HTTP 伺服器傳送其他的資料過來,然後再透過 DOM [2] 的動態網頁技術去改變頁面內容。因此,對於 real-time 需求較高的應用,像是聊天室,這種「輪詢」就變得不是這麼好用了,過份密集的輪詢會造成伺服器的負擔,間隔過久的輪詢又不符合 real-time 的要求。那要怎麼解決呢?使用 JavaScript 以外的技術,看來是躲不掉的了。

[1] http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm

[2] Document Object Model : http://en.wikipedia.org/wiki/Document_Object_Model

Push4Free : http://www.push4free.com

Post to Twitter Post to Plurk Post to Digg Post to Facebook

No responses yet

Leave a Reply

Additional comments powered by BackType