- 首先讲出核心代码
index.js
,如下:
const crypto = require(‘crypto‘);
const express = require(‘express‘);
const { createServer } = require(‘http‘);
const WebSocket = require(‘ws‘);
const app = express();
const server = createServer(app);
const wss = new WebSocket.Server({ server });
wss.on(‘connection‘, function(ws) {
console.log("client joined.");
// send "hello world" interval
const textInterval = setInterval(() => ws.send("hello world!"), 100);
// send random bytes interval
const binaryInterval = setInterval(() => ws.send(crypto.randomBytes(8).buffer), 110);
ws.on(‘message‘, function(data) {
if (typeof(data) === "string") {
// client sent a string
console.log("string received from client -> ‘" + data + "‘");
} else {
console.log("binary received from client -> " + Array.from(data).join(", ") + "");
}
});
ws.on(‘close‘, function() {
console.log("client left.");
clearInterval(textInterval);
clearInterval(binaryInterval);
});
});
server.listen(8080, function() {
console.log(‘Listening on http://localhost:8080‘);
});
- 其次,讲明使用的库,写入
packages.json
文件中,如下:
{
"name": "nodeserver",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"ws": "^7.1.2"
}
}
- 最后,执行即可,先
npm install
安装依赖包,再执行npm run start
或直接执行node index.js
。
- 基于Node.js的WebSocket极简服务器开发完成。
作者:艾孜尔江