Socket.IO - Hello World
建立一個名為 app.js
的檔案並輸入以下程式碼來設定快速應用程式 -
var app = require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res) {
res.sendfile('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
進行檢查。
這將設定我們的快速應用程式,現在在根路由上提供HTML檔案。現在,每當有人導航/關閉此頁面時,每當使用者訪問此頁面並且“使用者斷開連線”時,我們將需要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('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)
建立一個連線到http伺服器的新socket.io例項。該 io.on
事件處理程式處理連線,斷線等事件,使用Socket物件。
我們已經設定了伺服器來記錄連線和斷開連線的訊息。我們現在必須包含客戶端指令碼並在那裡初始化 Sockets 物件,以便客戶端可以在需要時建立連線。該指令碼由我們的 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
如果重新整理瀏覽器,它將斷開 Sockets 連線並重新建立。您可以在控制檯日誌中看到以下內容 -
A user connected
A user disconnected
A user connected
我們現在有 Sockets 連線工作。這能看出在 Socket.IO 中設定連線是多麼的容易。