Node.js 中的 ws 模块是一个 WebSocket 实现库,可以用来创建 WebSocket 服务器和客户端。本文将详细介绍如何使用 ws 模块实现服务端和客户端的开发,以及如何使用网页 WebSocket 客户端与服务端进行通信。
创建 WebSocket 服务端
首先我们需要安装 ws 模块,可以使用 npm 命令进行安装:
npm install ws
完成安装后,我们可以创建一个 WebSocket 服务器,并监听一个端口,当客户端连接上时,在服务器和客户端之间进行通信。
下面是创建一个最简单的 WebSocket 服务器的示例:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
console.log('client connected');
ws.on('message', function incoming(data) {
console.log('received: %s', data);
});
ws.send('hello world');
});
在这个示例中,我们创建了一个 WebSocket 服务器实例 wss,并设置监听端口为 8080。当有客户端连接上时,我们会在控制台输出 "client connected",并且可以接收客户端发送来的消息并输出到控制台上,同时我们向客户端发送了一个 "hello world" 的消息。
创建 WebSocket 客户端
接下来我们可以创建一个 WebSocket 客户端,连接到该服务端,并发送消息。
下面是创建一个最简单的 WebSocket 客户端的示例:
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', function open() {
console.log('connected');
ws.send('hello');
});
ws.on('message', function incoming(data) {
console.log('received: %s', data);
});
ws.on('close', function close() {
console.log('disconnected');
});
在这个示例中,我们首先创建一个 WebSocket 实例 ws,连接到服务端的地址为 ws://localhost:8080。当客户端成功连接上时,我们在控制台输出 "connected",并向服务端发送一条 "hello" 的消息。同时如果客户端接收到服务端的消息,会在控制台输出这条消息。
网页 WebSocket 客户端
现在我们已经成功地创建了一个 WebSocket 服务器和客户端,接下来我们可以在网页上进行通信了。
在网页上使用 WebSocket 需要先通过 JavaScript 来创建一个 WebSocket 实例,并连接到服务端地址上。创建好 WebSocket 实例后,当服务端发送消息过来时,网页上就可以接收到消息并进行相应处理。
下面是一个最简单的网页 WebSocket 客户端的示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WebSocket Example</title>
<script>
var ws = new WebSocket("ws://localhost:8080");
ws.onopen = function(event) {
console.log("connected");
ws.send("Hello, Server!");
};
ws.onmessage = function(event) {
console.log("Received: " + event.data);
};
ws.onclose = function(event) {
console.log("disconnected");
};
</script>
</head>
<body>
</body>
</html>
在这个示例中,我们创建了一个 WebSocket 实例 ws,并连接到服务端地址为 ws://localhost:8080。当客户端成功连接上时,我们在控制台输出 "connected",并向服务端发送一条 "Hello, Server!" 的消息。同时如果客户端接收到服务端的消息,会在控制台输出这条消息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js中ws模块创建服务端和客户端,网页WebSocket客户端 - Python技术站