<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Miife Blog &#187; real-time</title>
	<atom:link href="http://blog.miife.com/tags/real-time/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.miife.com</link>
	<description>Me 2 for Your Life</description>
	<lastBuildDate>Sun, 09 Jan 2011 03:44:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Push4Free &#8211; 免費提供的聊天伺服器</title>
		<link>http://blog.miife.com/2009/05/push4free-%e8%81%8a%e5%a4%a9%e4%bc%ba%e6%9c%8d%e5%99%a8%ef%bc%9f.html</link>
		<comments>http://blog.miife.com/2009/05/push4free-%e8%81%8a%e5%a4%a9%e4%bc%ba%e6%9c%8d%e5%99%a8%ef%bc%9f.html#comments</comments>
		<pubDate>Mon, 18 May 2009 02:58:42 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[網站開發]]></category>
		<category><![CDATA[Chat]]></category>
		<category><![CDATA[Push4Free]]></category>
		<category><![CDATA[real-time]]></category>

		<guid isPermaLink="false">http://blog.miife.com/?p=382</guid>
		<description><![CDATA[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 伺服器傳送其他的資料過來，然後再透過 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://blog.miife.com/wp-content/uploads/2009/01/push4free.png"><img class="alignnone size-medium wp-image-384" style="margin: 0pt 10px 10px 0pt; float: left;" title="push4free" src="http://blog.miife.com/wp-content/uploads/2009/01/push4free-244x300.png" alt="" width="244" height="300" /></a>Push4Free 是一套專為 real-time 聊天需求所開發的服務，它提供了一組 API 讓開發者可以自行撰寫應用程式來連接到 Push4Free 的伺服器，作為聊天訊息的傳送。簡單來說，Push4Free 可以幫開發者解決聊天伺服器的負載問題，但更方便的是，Push4Free 提供了 Flash、JavaScript、.NET 等的 API 解決方案，不只能應用在視窗應用程式，更可以用在眾多的瀏覽器上。疑？JavaScript？是的，但是並不是只有 JavaScript，Push4Free 提供的 JavaScript 解決方案，事實上也需要搭配 Flash 的技術，才能夠從聊天伺服器「主動」的丟聊天訊息給瀏覽器。</p>
<p><span id="more-382"></span></p>
<p style="text-align: justify;">這是為甚麼呢？為甚麼要搭配 Flash 才能夠「主動」的丟訊息呢？</p>
<p style="text-align: justify;">有開發過 web application 程式的讀者們，應該都很了解 HTTP 協定一種「單向的協定」，也就是說，瀏覽器可以主動跟 HTTP 請求頁面資料，但是 HTTP 伺服器不能主動對瀏覽器請求傳送頁面資料。要達到即時頁面更新的技巧，能做的只有「輪詢」（Polling）的方法了，在近十年前，最簡單的技巧就是用 HTML 的 refresh meta tag [1]。近幾年，使用背景連線的 XMLHttpRequest 元件是蠻常見的做法，這也是 Ajax 技術賴以維生的基礎。</p>
<p style="text-align: justify;">所以說，當你在瀏覽這篇文章的時候，瀏覽器可以要求 HTTP 伺服器傳送網址 “<span id="sample-permalink">http://blog.miife.com/2009/05/<span id="editable-post-name-full">push4free</span>.html</span>” 的頁面資料。不過，當你看到頁面上的 Google 廣告不斷輪替的時候，絕對不是 HTTP 伺服器「很厲害」的主動送新的 Google 廣告進來，而是這個頁面上的 JavaScript 背地裡又要求 HTTP 伺服器傳送其他的資料過來，然後再透過 DOM [2] 的動態網頁技術去改變頁面內容。因此，對於 real-time 需求較高的應用，像是聊天室，這種「輪詢」就變得不是這麼好用了，過份密集的輪詢會造成伺服器的負擔，間隔過久的輪詢又不符合 real-time 的要求。那要怎麼解決呢？使用 JavaScript 以外的技術，看來是躲不掉的了。</p>
<p>[1] <a href="http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm">http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm</a></p>
<p>[2] Document Object Model : <a href="http://en.wikipedia.org/wiki/Document_Object_Model">http://en.wikipedia.org/wiki/Document_Object_Model</a></p>
<p>Push4Free : <a href="http://www.push4free.com">http://www.push4free.com</a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://blog.miife.com/2009/05/push4free-%e8%81%8a%e5%a4%a9%e4%bc%ba%e6%9c%8d%e5%99%a8%ef%bc%9f.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

