/*socket.io是一個基於 node.js 的項目,其主要作用是將WebScoket 協議應用到所有的瀏覽器。該模塊主要應用於實時的長連接 多請求的項目中,例如線上聯網游戲中、實時聊天、實施股票查看、二維碼掃描登錄等。 安裝配置和 npm 一樣: npm intall scoket.io 安裝 ...
/*socket.io是一個基於 node.js 的項目,其主要作用是將WebScoket 協議應用到所有的瀏覽器。該模塊主要應用於實時的長連接
多請求的項目中,例如線上聯網游戲中、實時聊天、實施股票查看、二維碼掃描登錄等。
安裝配置和 npm 一樣:
npm intall scoket.io
安裝成功後,來學習如何使用 scoket.io 來創建項目,scoket 協議首先要瞭解其存在的伺服器端和客戶端,因此要實現一個scoket
服務時,根據 scoket 的伺服器端和客戶端API要分別實現其邏輯。伺服器端啟動進程等待客戶端的鏈接,那麼接下來來創建
一個伺服器端Node.js 腳本 index_servet.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);
});
});
/*
var io = require('scoket.io').listen(80) :設置 socket 監聽埠為8080埠
io.scoket.on('connection',function(){}):調用 scoket API 介面,當客戶端 connection 時,執行回調函數function
scoket.emit('news',{hello:'world'}):連接成功後返回一個 new 消息,消息內容為 json 對象{hello:'world'}
scoket.on('my other even',function(data){}):當客戶端發送 my other event 消息時,伺服器哦接收該消息,
成功獲取該消息後執行回調函數 function(data){}
scoket.emit() 為 scoket 發送消息的函數,第一個參數為發送消息的key值,第二個參數為發送消息的內容,也就是發送的數據
scoket.on 為 scoket 接受消息函數,同理其第一個參數為接收消息的key值,第二個參數為回調函數,其中回調函數攜帶的
參數為接受消息所發出的數據
接下來看 web 欠點如何通過 JavaScript 來鏈接 scoket 伺服器。新建 index_client.html 文件,代碼如下:
<script src="socket.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
<script src="socket.js"></script>:載入 scoket.js 本地 JavaScript 文件
var socket = io.connect('http://localhost:8080'):使用 scoket 鏈接本地的 scoket 伺服器
socket.on('news', function (data) {}:接受伺服器發送的 news 消息後,當伺服器推送new 消息後執行回調函數,
回調函數的 date 參數為 news 消息發送的數據,如上面的 json 對象 { hello: 'world' }
socket.emit('my other event', { my: 'data' }):客戶端接收 news 消息成功後,發送 my other evebt 消息到
伺服器端,其發送消息的內容為 json 對象
*/