Socket.io教學

5 / 15, 2014 node.js , 網路

大家好哦!在這數個月有很多事發生了,我弄了一個佈景主題,也花了很多時間弄了一個搶答系統。這段時間我都沒有什麼理會這個部落格(Allen,對不起),還有以前寫的node.js教學好像沒有再繼續寫,所以現在就繼續寫一下(嘆氣)。這次我們要介紹的就是Socket.io,一個可以令瀏覽器和node.js伺服器有雙向溝通的程式庫。他主要利用了WebSocket,一個新的HTML5技術來建立一個對伺服器的長時間連線。WebSocket就像一個普通的TCP連線,可是它整個是基於HTTP協定的,所以普通的HTTP伺服器也可以使用WebSocket。好了,我們現在開始socket.io教學!

擷取

首先,我們要利用npm安裝Socket.io:

然後我們要在我們的程式裡面載入socket.io:

因為socket.io需要一個HTTP伺服器才可以運作,我們需要把socket.io黏附到一個HTTP伺服器:

值得注意的是,Socket.io並不會影響你的HTTP伺服器的運作。現在,我們是時候要開始使用socket.io了!

Socket.io伺服器端基本

首先,好像HTTP伺服器,我們要有一個Callback給Socket.io去應付我們的Socket連線:

和HTTP伺服器的request和response一樣,callback裡面的socket代表了一個連線,你可以在socket上面發送和接收資料。

如果想一次過發送資料給所有連線的人,那怎麼辦呢?我們可以利用socket.broadcast.emit來廣播資料,要注意的是發送廣播的socket並不會收到資料:

 Socket.io網頁端基本

首先,我們要匯入socket.io的JS(socket.io會自動提供):

然後我們就要連線至Socket.io伺服器:

然後我們就可以開始發送和接收資料:

這次的教學就到這裡吧!如果有什麼不明白,可以在下面的留言找我,我會盡快回復。