隨著現代網絡應用程序的增多,websocket 技術也變得非常流行。它是一項基于 tcp 協議的長連接技術,可以在客戶端和服務器之間創建雙向通信管道。在本文中,我們將介紹如何在 linux 系統中使用 websocket 技術來創建一個簡單的實時聊天應用程序。
一、安裝 Node.js
要使用 WebSocket,首先需要在 linux 系統中安裝 Node.js。Node.js 是一種服務器端 JavaScript 運行時環境,它可以幫助我們編寫高效的實時網絡應用程序。以下是在 Debian/Ubuntu 上安裝 Node.js 的命令:
$ sudo apt-get update $ sudo apt-get install nodejs $ sudo apt-get install npm
二、創建一個 WebSocket 服務器
接下來我們來創建一個簡單的 WebSocket 服務器。在編輯器中創建一個名為 server.js 的文件,并將以下代碼復制進去:
const WebSocket = require('ws'); const server = new WebSocket.Server({ port: 8080 }); server.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); server.clients.forEach(function each(client) { if (client.readyState === WebSocket.OPEN) { client.send(message); } }); }); });
在本例中,我們使用了 Node.js 內置的 WebSocket 模塊,然后創建了一個 WebSocket 服務器(端口為 8080)。每當有新的客戶端連接到服務器時,我們將為該客戶端創建一個 WebSocket 實例,并在服務器上偵聽它的消息。每當收到一個消息后,該服務器將對每個客戶端廣播這個消息。
三、創建客戶端
使用 WebSocket 技術,我們可以在客戶端和服務器之間實現雙向通信。在本例中,我們將使用一個名為 ws 的命令行工具來創建一個 WebSocket 客戶端。以下是在 Linux 系統上安裝 ws 的命令:
$ sudo npm install -g ws
在編輯器中創建一個名為 client.js 的文件,并將以下代碼復制進去:
const WebSocket = require('ws'); const ws = new WebSocket('ws://localhost:8080'); ws.on('open', function open() { console.log('connected'); }); ws.on('message', function incoming(data) { console.log(data); }); process.stdin.on('data', function incoming(data) { ws.send(data.toString().trim()); });
在本例中,我們使用了 ws 模塊創建了一個 WebSocket 客戶端,并將其連接到我們之前創建的 WebSocket 服務器。每當連接建立時,我們將在控制臺上輸出 connected。任何來自服務器的消息都將被輸出到控制臺上。最后,我們設置了一個 stdin 監聽器,當客戶端輸入一些數據時,將立即發送到服務器上。
四、測試應用程序
在終端上打開兩個窗口,一個用于服務器,另一個用于客戶端。在服務器窗口中運行以下命令:
$ node server.js
在客戶端窗口中運行以下命令:
$ node client.js
現在你可以在客戶端窗口中輸入一些消息,并在服務器窗口中看到它們被廣播到每個客戶端。反之亦然,如果你在服務器窗口中輸入一些數據,它將顯示在每個客戶端上。
五、總結
在 Linux 系統上使用 WebSocket 技術可以幫助我們創建具有實時雙向通信功能的應用程序。在本文中,我們通過使用 Node.js 和 ws 模塊來創建一個簡單的實時聊天應用程序。希望本文對初學者有所幫助!