首頁 > web前端 > js教程 > 主體

node.js中的socket.io入門實例_javascript類別庫

WBOY
發布: 2016-05-16 16:51:00
原創
1444 人瀏覽過

關於websocket等反向ajax技術介紹

在即時web應用中,常見的方法是反向Ajax。反向Ajax的定義:

反向Ajax(Reverse Ajax)本質上則是這樣的一種概念:能夠從伺服器端傳送資料到客戶端。在一個標準的HTTP Ajax請求中,資料是發送給伺服器端的,反向Ajax可以某些特定的方式來模擬發出一個Ajax請求,這些方式本文都會論及,這樣的話,伺服器就可以盡可能快地向客戶端發送事件(低延遲通訊)。

反向Ajax技術主要有兩點內容:一是伺服器端保持住TCP連線直到其有資料傳送給客戶端(可以使用循環和睡眠實作),二是客戶端js程式設計技巧。

websocket是html5的規範,也屬於反ajax技術。

socket.io實作反向AJAX技術實例

socket.io官方介紹:

Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realser 100% inreals Int. IO selects the most capable transport at runtime, without it affecting the API. WebSocket Adob​​​​e® Flash® Socket AJAX long polling AJAX multipart streaming Forever Iframe JSONP Polling

簡單來說socket.io是一個基於nodejs的函式庫,其對多種反向ajax技術進行了包裝並統一了介面。在運行時候socket.io會自動根據瀏覽器的情況選擇合適的反向ajax技術與socket.io伺服器進行互動。如果說websocket等技術是規範的話,那麼socket.io就屬於應用。

下面說一下如何安裝(作者使用Linux Mint 16):

安裝node.js:

複製程式碼 程式碼如下:
sudo apt-get installjs 🎜>
輸入指令nodejs即可進入shell模式。
安裝npm:


複製程式碼 程式碼如下:sudo apt-get installd
安裝socket.io:


複製程式碼 程式碼如下:sudo nudo npm installet. 🎜>安裝包存放在~/node_modules目錄下,客戶端socket.io.js存放在~/node_modules/socket.io/node_modules/socket.io-client/dist目錄下。
socket.io範例

以下範例來自官方網站並做了適當修改。 先建立server端(服務端)程式碼(檔案test.js):


複製程式碼

程式碼如下:var io = require('socket.io').listen(8080);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event' , function (data) {console.log(data);

});
});

服務端test.js綁定了8080端口,當一個客戶端連接端口服務端test.js時候,服務端test.js向客戶端發出news指令並傳送資料{ hello: 'world' };而服務端test.js收到my other event指令時候會呼叫回呼函數function (data) { console.log(data);}來處理接收到的資料data。

筆者搭建了nginx伺服器,其使用的80端口,web根目錄為/usr/share/nginx/html。將~/node_modules/socket.io/node_modules/socket.io-client/dist下的socket.io.min.js複製到web根目錄,並在web根目錄下建立檔案index.php(作為客戶端) ,內容如下:



複製程式碼




<script><BR>  var socket = io.connect ('http://localhost:8080');<BR>  socket.on('news', function (data) {<BR>    console.log(data);<BR>    console.log(data["hello" ]);<BR>    socket.emit('my other event', { my: 'data' });<BR>  });<BR></script>


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!