html5的websocket api:它可用於客戶端、伺服器端。
websocket api是下一代客戶端-伺服器的非同步通訊方法。該通訊取代了單個的tcp套接字,使用ws或wss協議,可用於任意的客戶端和伺服器程式。websocket目前由w3c進行標準化。websocket已經受到firefox 4、chrome 4、opera 10.70以及safari 5等瀏覽器的支援。
websocket api最偉大之處在於伺服器和客戶端可以在給定的時間範圍內的任意時刻,相互推送資訊。websocket並不限於以ajax(或xhr)方式通訊,因為ajax技術需要客戶端發起請求,而websocket伺服器和客戶端可以彼此相互推送資訊;xhr受到域的限制,而websocket允許跨域通訊。
ajax技術很聰明的一點是沒有設計要使用的方式。websocket為指定目標建立,用於雙向推送訊息。
websocket簡單用法:客戶端頁面** html5
server端:需要jdk7.0.40以上 tomcat7以上
讓我們來看看上面的初始化片段。引數為url,ws表示websocket協議。onopen、onclose和onmessage方法把事件連線到socket例項上。每個方法都提供了乙個事件,以表示socket的狀態。
onmessage事件提供了乙個data屬性,它可以包含訊息的body部分。訊息的body部分必須是乙個字串,可以進行序列化/反序列化操作,以便傳遞更多的資料。
websocket的語法非常簡單,使用websockets是難以置信的容易……除非客戶端不支援websocket。ie瀏覽器目前不支援websocket通訊。如果你的客戶端不支援websocket通訊,
看下邊的方法:
flash技術 —— flash可以提供乙個簡單的替換。 使用flash最明顯的缺點是並非所有客戶端都安裝了flash,而且某些客戶端,如iphone/ipad,不支援flash。
ajax long-polling技術 —— 用ajax的long-polling來模擬websocket在業界已經有一段時間了。它是乙個可行的技術,但它不能優化傳送的資訊。也就是說,它是乙個解決方案,但不是最佳的技術方案。
由於目前的ie等瀏覽器不支援websocket,要提供websocket的事件處理、返回傳輸、在伺服器端使用乙個統一的api,那麼該怎麼辦呢?幸運的是,guillermo rauch建立了乙個socket.io技術。
[b]帶socket.io的websocket[/b]
socket.io是guillermo rauch建立的websocket api,guillermo rauch是learnboost公司的首席技術官以及learnboost實驗室的首席科學家。socket.io使用檢測功能來判斷是否建立websocket連線,或者是ajax long-polling連線,或flash等。可快速建立實時的應用程式。socket.io還提供了乙個nodejs api,它看起來非常像客戶端api。
建立客戶端socket.io
// 建立socket.io例項,建立連線
var socket= new io.socket('localhost',);
socket.connect();
// 新增乙個連線***
socket.on('connect',function() );
// 新增乙個連線***
socket.on('message',function(data) );
// 新增乙個關閉連線的***
socket.on('disconnect',function() );
// 通過socket傳送一條訊息到伺服器
function sendmessagetoserver(message)
socket.io簡化了websocket api,統一了返回運輸的api。傳輸包括:
websocket
flash socket
ajax long-polling
ajax multipart streaming
iframe
jsonp polling
你還可以設定任意的socket.io構造器的第二個選項,選項包括:
port - 待連線的埠
transports - 乙個陣列,包含不同的傳輸型別
transportoptions - 傳輸的引數使用的物件,帶附加屬性
socket.io還提供了由本地websocket api提供的普通連線、斷開連線、訊息事件。socket還提供了封裝每個事件型別的方法
[b]實際應用和websocket資源[/b]
有很多websocke的實際應用。websocket對於大多數客戶機-伺服器的非同步通訊是理想的,在瀏覽器內聊天是最突出的應用。websocket由於其高效率,被大多數公司所使用。
websocket資源
socket.io站點:
websocket的wikipedia:
websockets.org站點:
dojo websocket站點:
so的一些資訊
1.查詢動態庫so所依賴的其他庫 objdump x libtest.so grep need 結果例如 needed libc.so needed libdl.so 即,需要libc和libdl兩個so。2.也可以用ndk中的 android ndk r5b toolchains arm linu...
晶元封裝的一些資訊
plcc plastic leaded chip carrier package 塑料有引線晶元載體封裝,常用的有 pc20,28,44,68和84等引腳 tqfp thin quad flatpack package 細四周扁平封裝,常見100,144,176等引腳 pqfp plastic qu...
記錄iframes的一些資訊
1 iframe是框架 如 aaa.html 2 得到或設定iframe。如果想要單獨的根據iframe的id來設定src等資訊。這是要用到document.getelementbyid id 來設定。如 var obj iframes document.getelementbyid import ...