首先是Socket.IO的官方網站:http://socket.io
官網非常簡潔,甚至沒有API文檔,只有一個簡單的“How to use”可以參考。因為Socket.IO就跟官網一樣簡潔好用易上手。
那么Socket.IO到底是什么呢?Socket.IO是一個WebSocket庫,包括了客戶端的js和服務器端的nodejs,它的目標是構建可以在不同瀏覽器和移動設備上使用的實時應用。它會自動根據瀏覽器從WebSocket、AJAX長輪詢、Iframe流等等各種方式中選擇最佳的方式來實現網絡實時應用,非常方便和人性化,而且支持的瀏覽器最低達IE5.5,應該可以滿足絕大部分需求了。
2. 安裝部署
2.1 安裝
首先安裝非常簡單,在node.js環境下只要一句:
代碼如下:
npm install socket.io
2.2 結合express來構建服務器
express是一個小巧的Node.js的Web應用框架,在構建HTTP服務器時經常使用到,所以直接以Socket.IO和express為例子來講解。
代碼如下:
var express = require('express')
, app = express()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
server.listen(3001);
若不使用express,請參考socket.io/#how-to-use
3. 基本使用方法
主要分為服務器端和客戶端兩段代碼,都非常簡單。
Server(app.js):
代碼如下:
//接上面的代碼
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('other event', function (data) {
console.log(data);
});
});
首先io.sockets.on函數接受字符串"connection"作為客戶端發起連接的事件,當連接成功后,調用帶有socket參數的回調函數。我們在使用socket.IO的時候,基本上都在這個回調函數里面處理用戶的請求。
socket最關鍵的是emit和on兩個函數,前者提交(發出)一個事件(事件名稱用字符串表示),事件名稱可以自定義,也有一些默認的事件名稱,緊接著是一個對象,表示向該socket發送的內容;后者接收一個事件(事件名稱用字符串表示),緊接著是收到事件調用的回調函數,其中data是收到的數據。
在上面的例子中,我們發送了news事件和收到了other event事件,那么客戶端應該會有對應的接收和發送事件。沒錯,客戶端代碼和服務器正好相反,而且非常相似。
Client(client.js)
代碼如下:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com