HTML5之中一個(gè)很酷的新特性就是WebSockets,它可以讓我們無(wú)需AJAX請(qǐng)求即可與服務(wù)器端對(duì)話。今天彬Go將讓大家通過(guò)Php環(huán)境的服務(wù)器端運(yùn)行WebSocket,創(chuàng)建客戶端并通過(guò)WebSockets協(xié)議發(fā)送和接收服務(wù)器端信息。
您還可以參考以下HTML5相關(guān)文章:
《關(guān)于HTML 5 canvas 的基礎(chǔ)教程》
《讓所有IE支持HTML5的解決方案》
《一起感受HTML5和CSS3的能量》
什么是WebSockets?
WebSockets是在一個(gè)(TCP)接口進(jìn)行雙向通信的技術(shù),PUSH技術(shù)類型。同時(shí)WebSockets仍將基于W3C標(biāo)準(zhǔn),目前為止,Chrome和Safari的最新版本瀏覽器已經(jīng)支持WebSockets了。
WebSockets將會(huì)替代什么? WebSockets可以替代Long Polling(PHP服務(wù)端推送技術(shù)),這是一個(gè)有趣的概念。客戶端發(fā)送一個(gè)請(qǐng)求到服務(wù)器,現(xiàn)在,服務(wù)器端并不會(huì)響應(yīng)還沒(méi)準(zhǔn)備好的數(shù)據(jù),它會(huì)保持連接的打開(kāi)狀態(tài)直到最新的數(shù)據(jù)準(zhǔn)備就緒發(fā)送,之后客戶端收到數(shù)據(jù),然后發(fā)送另一個(gè)請(qǐng)求。這有它的好處:減少任一連接的延遲,當(dāng)一個(gè)連接已經(jīng)打開(kāi)時(shí)就不需要?jiǎng)?chuàng)建另一個(gè)新的連接。但是Long-Polling并不是什么花俏技術(shù),他仍有可能發(fā)生請(qǐng)求暫停,因此會(huì)需要建立新的連接。
一些AJAX應(yīng)用使用上述技術(shù)-這經(jīng)常是歸因于低資源利用。
試想一下,如果服務(wù)器在早晨會(huì)自啟動(dòng)并發(fā)送數(shù)據(jù)到那些希望接收而不用提前建立一些連接端口的客戶端,這是一件多棒的事情啊!歡迎來(lái)到PUSH技術(shù)的世界!
第一步:搞定WebSocket服務(wù)器
這篇教程會(huì)把更多的精力放在客戶端的創(chuàng)建而不是服務(wù)器端的執(zhí)行等操作。
我使用基于windows 7的XAMPP來(lái)實(shí)現(xiàn)本地運(yùn)行PHP。phpwebsockets是PHP WebSocket服務(wù)器。(以我的經(jīng)驗(yàn)這個(gè)版本存在一些小問(wèn)題,我已對(duì)它做了些修改并上傳源文件共享給大家)下面的這些不同版本也可以實(shí)現(xiàn)WebSocket,如果某個(gè)不能用,你可以試試其它版本或者繼續(xù)看下面的教程。
jWebSocket (Java)
web-socket-ruby (ruby)
Socket IO-node (node.js)
啟動(dòng)Apache服務(wù)器
出處:彬Go
責(zé)任編輯:bluehearts
上一頁(yè) 下一頁(yè) HTML5 WebSockets基礎(chǔ)使用教程 [2]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|