亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

node.js中的socket.io入門實例

2019-11-20 20:46:56
字體:
來源:轉載
供稿:網友

關于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 realtime 100% in JavaScript. In order to provide realtime connectivity on every browser, Socket.IO selects the most capable transport at runtime, without it affecting the API. WebSocket Adobe® 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 install nodejs

輸入命令nodejs即可進入shell模式。

安裝npm:

復制代碼 代碼如下:
sudo apt-get install npm

安裝socket.io:
復制代碼 代碼如下:
sudo npm install socket.io

安裝包存放在~/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(作為客戶端),內容如下:

復制代碼 代碼如下:

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

</html>

上面代碼中,socket綁定了8080端口,也就是綁定了server端。socket.on()指定了當收到news指令時候,應該如何處理收到的指令對應的數據,socket.emit()向server端發送指令和數據。

運行server端:

復制代碼 代碼如下:
$ nodejs test.js

運行客戶端并進行觀察:打開瀏覽器,進入http://127.0.0.1訪問index.php,并打開firebug查看信息。

上圖來自firebug,表明了客戶端index.php連接服務端test.js后收到了來自服務端test.js的數據{hello:"world"}。同時也能夠看到index.php訪問server的網址并非簡單的http://localhost:8080。

上圖顯示了服務端test.js的處理過程。
上圖是客戶端index.php第一次向服務端test.js發送的http頭。

上圖是客戶端index.php第2次向服務端test.js發送的http頭。使用了websocket規范。
當關掉服務端test.js時候客戶端index.php出現很多Aborted狀態(紅字部分)。

分析結束。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品扒开腿做爽爽爽视频| 精品久久久久久久中文字幕| 亚洲aⅴ日韩av电影在线观看| 国产欧美久久久久久| 欧美理论片在线观看| 亚洲最大中文字幕| 国产精品久久久久久久久久ktv| 欧美日韩国产在线| 国产午夜精品一区二区三区| 日韩av在线不卡| 精品国产美女在线| 亚洲欧美日韩精品久久奇米色影视| 97国产suv精品一区二区62| 日韩成人激情影院| 久久伊人精品天天| 5566成人精品视频免费| 97成人超碰免| 国产精品爽爽爽| 亚洲成人av中文字幕| 欧美性生交xxxxx久久久| 中文字幕日韩精品有码视频| 欧美成人在线免费| 欧美日韩精品二区| 美乳少妇欧美精品| 欧美第一页在线| 国产偷国产偷亚洲清高网站| 欧美日韩另类字幕中文| 亚洲国语精品自产拍在线观看| 日韩免费观看在线观看| 欧美久久精品午夜青青大伊人| 日韩av成人在线| 欧美亚洲另类视频| 国产成人精品最新| 久久99精品国产99久久6尤物| 亚洲欧美日韩一区二区三区在线| 国产精品爽黄69天堂a| 欧洲午夜精品久久久| 琪琪第一精品导航| 欧美性生交大片免网| 欧美黄色三级网站| 精品国产一区二区三区在线观看| 国产日韩精品入口| 中文字幕日韩精品在线| 日本精品视频在线播放| 中文字幕亚洲一区在线观看| 国产视频精品免费播放| 国产不卡一区二区在线播放| 国产成人精品日本亚洲| 美女少妇精品视频| 国产成人综合亚洲| 欧美日韩裸体免费视频| 国产精品久久久久久久久久久久久久| 亚洲精品电影在线| 91亚洲国产成人久久精品网站| 国产在线精品自拍| 日本一区二区在线播放| 亚洲精品美女视频| 国产精品手机播放| 久久网福利资源网站| 中文精品99久久国产香蕉| 国产精品偷伦一区二区| 国产91在线播放| 亚洲黄页视频免费观看| 欧美成人激情视频免费观看| 第一福利永久视频精品| 亚洲xxxxx| 国产亚洲视频在线观看| 国产精品久久久久久久久男| 亚洲成人激情视频| 亚洲成色777777在线观看影院| 日韩成人在线网站| 亚洲国产欧美精品| 日本亚洲欧美三级| 久久久久久网址| 91精品在线观| 中文字幕av一区中文字幕天堂| 精品国产一区二区三区久久久| 精品成人在线视频| 亚洲国产成人精品久久| 少妇高潮久久77777| 亚洲一区二区三区在线视频| 国产成人啪精品视频免费网| 亚洲aⅴ男人的天堂在线观看| 国产亚洲欧洲高清一区| 中文字幕日韩欧美在线视频| 日本亚洲欧洲色α| 亚洲欧美国产一本综合首页| 亚洲三级免费看| 少妇av一区二区三区| 精品视频在线播放免| 韩国19禁主播vip福利视频| 欧美日韩国产精品一区二区不卡中文| 91久久嫩草影院一区二区| 久久精品影视伊人网| 国产精品aaaa| 久久精品最新地址| 亚洲三级 欧美三级| 国产精品第3页| 亚洲第一网站男人都懂| 欧美中文在线观看| 91精品视频网站| 精品一区二区三区四区| 国产精品偷伦视频免费观看国产| 日韩免费在线播放| 黑人巨大精品欧美一区二区免费| 俺去啦;欧美日韩| 日韩中文字幕视频在线| 精品久久香蕉国产线看观看gif| 亚洲电影中文字幕| 国内精品国产三级国产在线专| 久久久精品欧美| 国产精品69久久| 国产精品日韩电影| 成人精品一区二区三区| 亚洲韩国欧洲国产日产av| 中文字幕成人在线| 在线观看精品自拍私拍| 午夜精品久久久久久99热软件| 97精品一区二区三区| 久久精品美女视频网站| 久99九色视频在线观看| 亚洲欧美精品伊人久久| 成人国产精品色哟哟| 日韩精品在线观看一区二区| 国产一区二区三区视频在线观看| 欧美色道久久88综合亚洲精品| 精品国产乱码久久久久酒店| 国产一级揄自揄精品视频| 国产精品亚洲片夜色在线| 91视频国产一区| 日韩av色综合| 午夜精品一区二区三区在线视频| 成人高h视频在线| 伊人久久综合97精品| 精品国产成人在线| 国产精品成人观看视频国产奇米| 国内精品中文字幕| 岛国av一区二区三区| 68精品国产免费久久久久久婷婷| 热re99久久精品国产66热| 亚洲福利在线播放| 欧美多人爱爱视频网站| 日韩av手机在线看| 97久久超碰福利国产精品…| 国产精品国产三级国产aⅴ9色| 亚洲综合中文字幕在线| 欧美高清视频在线播放| 91国内产香蕉| 日韩极品精品视频免费观看| 亚洲久久久久久久久久| 欧美日韩第一视频| 久久久免费观看视频| 色99之美女主播在线视频| 亚洲成人精品在线| 91精品国产乱码久久久久久蜜臀| 日本19禁啪啪免费观看www| 久久精品国产免费观看| 疯狂做受xxxx欧美肥白少妇| 欧美日韩电影在线观看| 91九色视频在线| 欧美日韩国产区| 国产精品视频自拍| 亚洲精品日产aⅴ| 少妇高潮久久久久久潘金莲|