下面我将详细介绍如何使用Node.js实现简单的WebSocket即时通讯,包括以下步骤:
步骤一:创建WebSocket服务器
首先,我们需要使用Node.js创建一个WebSocket服务器,代码如下:
const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });
server.on('connection', (ws) => {
console.log('client connected');
// 客户端发送消息时触发
ws.on('message', (message) => {
console.log(`received: ${message}`);
// 向客户端发送消息
ws.send(`you sent: ${message}`);
});
});
上述代码使用了ws
模块创建了一个WebSocket服务器,指定端口8080
。当有客户端连接到服务器时,触发connection
事件,并打印客户端连接的信息。同时,当客户端发送消息时,触发message
事件,并打印收到的消息。最后向客户端发送回复消息。
步骤二:创建WebSocket客户端
使用ws
模块创建WebSocket客户端,代码如下:
const WebSocket = require('ws');
const client = new WebSocket('ws://localhost:8080');
client.on('open', () => {
console.log('connected to server');
// 向服务器发送消息
client.send('hello, server!');
});
client.on('message', (message) => {
console.log(`received: ${message}`);
});
上述代码创建了一个WebSocket客户端,并连接到服务器。当客户端成功连接到服务器时,触发open
事件,并打印连接成功的信息,同时向服务器发送一条消息。当客户端接收到服务器发来的消息时,触发message
事件,并打印接收到的消息。
示例说明
下面演示两个基本的示例,一个是客户端向服务器发送消息,服务器回复消息;另一个是服务器向客户端广播消息。
示例一:客户端向服务器发送消息,服务器回复消息
- 打开两个终端窗口,分别执行以下命令:
node server.js
node client.js
这样就会启动一个WebSocket服务器和一个WebSocket客户端。
- 在客户端终端窗口中输入一条消息,例如:
hello, server!
,然后按回车键。客户端就会将该消息发送给服务器。
$ node client.js
connected to server
received: you sent: hello, server!
服务器会打印出客户端发送的消息,并将该消息原样回复给客户端。
- 在客户端终端窗口中输入另一条消息,例如:
how are you?
,然后按回车键。客户端又会将该消息发送给服务器。
$ node client.js
connected to server
received: you sent: hello, server!
received: you sent: how are you?
服务器同样会打印出客户端发送的消息,并将该消息原样回复给客户端。
示例二:服务器向客户端广播消息
- 打开两个终端窗口,分别执行以下命令:
node server.js
node client.js
这样就会启动一个WebSocket服务器和一个WebSocket客户端。
- 在服务器的终端窗口中输入一条消息,例如:
hello, everyone!
,然后按回车键。服务器就会将该消息广播给所有连接到服务器的客户端。
$ node server.js
client connected
received: hello, everyone!
client connected
received: hello, everyone!
所有已连接到服务器的客户端都会接收到服务器广播的消息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJs 实现简单WebSocket即时通讯的示例代码 - Python技术站