📅  最后修改于: 2023-12-03 14:48:26.211000             🧑  作者: Mango
WebSockets 和 Sockets 都是用于在客户端和服务器之间建立实时通信的技术。但是,它们之间有一些区别。
WebSocket 是一种协议,它建立在 HTTP 协议之上,可以在客户端和服务器之间建立持久连接。它是一个双向通信协议,允许服务器和客户端同时发送和接收消息。使用 WebSocket 可以使实时通信更加高效、可靠和快速。
下面是在 Node.js 中使用 WebSocket 实现简单聊天室的例子:
// 引入 WebSocket 模块
const WebSocket = require('ws');
// 创建 WebSocket 服务器
const wss = new WebSocket.Server({ port: 8080 });
// 监听连接事件
wss.on('connection', (ws) => {
console.log('客户端已连接');
// 监听消息事件
ws.on('message', (message) => {
console.log(`收到消息:${message}`);
// 广播消息
wss.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
});
});
Socket 是一种 API,它可以在应用程序之间建立基于 TCP 的连接。与 HTTP 不同,Socket 允许客户端和服务器之间建立长时间的连接,并且在连接建立后可以任意发送数据。
下面是在 Node.js 中使用 Socket 实现简单聊天室的例子:
// 引入 net 模块
const net = require('net');
// 创建服务器
const server = net.createServer((socket) => {
console.log('客户端已连接');
// 监听数据事件
socket.on('data', (data) => {
console.log(`收到消息:${data}`);
// 广播消息
server.connections.forEach((client) => {
if (client !== socket) {
client.write(data.toString());
}
});
});
});
// 监听端口
server.listen(8080);
WebSocket 和 Socket 都是用于建立实时通信的技术,它们之间的区别如下: