
- Socket.IO 教程
- Socket.IO - 首頁
- Socket.IO - 概述
- Socket.IO - 環境
- Socket.IO - Hello World
- Socket.IO - 事件處理
- Socket.IO - 廣播
- Socket.IO - 名稱空間
- Socket.IO - 房間
- Socket.IO - 錯誤處理
- Socket.IO - 日誌記錄和除錯
- Socket.IO - 內部機制
- Socket.IO - 聊天應用
- Socket.IO 有用資源
- Socket.IO - 快速指南
- Socket.IO - 有用資源
- Socket.IO - 討論
Socket.IO - Hello World
在接下來的章節中,我們將討論使用 Socket.IO 庫和 ExpressJS 的基本示例。
示例
首先,建立一個名為 app.js 的檔案,並輸入以下程式碼來設定一個 Express 應用程式:
var app = require('express')(); var http = require('http').Server(app); app.get('/', function(req, res){ res.sendFile('E:/test/index.html'); }); http.listen(3000, function(){ console.log('listening on *:3000'); });
我們需要一個 index.html 檔案來提供服務,建立一個名為 index.html 的新檔案,並在其中輸入以下程式碼:
<!DOCTYPE html> <html> <head><title>Hello world</title></head> <body>Hello world</body> </html>
要測試它是否有效,請轉到終端並使用以下命令執行此應用程式:
nodemon app.js
這將在 localhost:3000 上執行伺服器。轉到瀏覽器並輸入 localhost:3000 進行檢查。如果一切順利,頁面上會列印一條訊息 “Hello World”。
以下是另一個示例(這需要 Socket.IO),每次使用者訪問此頁面時,它都會記錄“使用者已連線”,並且每次有人離開/關閉此頁面時,都會記錄“使用者已斷開連線”。
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendFile('E:/test/index.html'); }); //Whenever someone connects this gets executed io.on('connection', function(socket){ console.log('A user connected'); //Whenever someone disconnects this piece of code executed socket.on('disconnect', function () { console.log('A user disconnected'); }); }); http.listen(3000, function(){ console.log('listening on *:3000'); });
require('socket.io')(http) 建立一個新的 socket.io 例項,並將其附加到 http 伺服器。io.on 事件處理程式在其中使用 socket 物件處理連線、斷開連線等事件。
我們已將伺服器設定為在連線和斷開連線時記錄訊息。現在我們必須包含客戶端指令碼並在其中初始化 socket 物件,以便客戶端在需要時可以建立連線。該指令碼由我們的 io 伺服器在 '/socket.io/socket.io.js' 提供服務。
完成上述步驟後,index.html 檔案將如下所示:
<!DOCTYPE html> <html> <head><title>Hello world</title></head> <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); </script> <body>Hello world</body> </html>
如果您現在轉到 localhost:3000(確保您的伺服器正在執行),您將在瀏覽器中看到打印出的 Hello World。現在檢查您的伺服器控制檯日誌,它將顯示以下訊息:
A user connected
如果您重新整理瀏覽器,它將斷開 socket 連線並重新建立。您可以在控制檯日誌中看到以下內容:
A user connected A user disconnected A user connected
廣告