ajax/axios/fetch区别及webSocket通信原理
AJAX、Axios 和 Fetch 都是用于在浏览器中执行异步 HTTP 请求的工具,但它们之间有一些关键的区别:
- AJAX (Asynchronous JavaScript and XML): 早期的技术,现在已经被 Fetch API 替代,但是开发者可能仍然需要了解它,因为一些旧的代码可能仍然在使用它。它使用 XMLHttpRequest 对象来发送异步请求。
- Axios: 是一个基于 Promise 的 HTTP 客户端,它在浏览器和 node.js 中都可以使用。它的主要特点是在 node.js 中发送 http 请求时,它会返回一个 Promise。
- Fetch: 是一个现代的、强大的、灵活的 API,用于发起网络请求,并且可以使用 Promise 处理请求的结果。
关于 WebSocket 通信:
WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,能够实现客户端和服务器之间的持续通信。WebSocket 通信不同于 HTTP 通信,它不需要每次都发送 HTTP 请求,因此它更高效,能够节省带宽和服务器资源。
以下是一个简单的 WebSocket 示例:
服务器端 (Node.js 使用 ws
库):
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
客户端 (HTML + JavaScript):
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', function open() {
console.log('connected');
});
ws.on('close', function close() {
console.log('disconnected');
});
ws.on('message', function incoming(data) {
console.log('received: %s', data);
});
在这个例子中,服务器端创建了一个 WebSocket 服务器,监听 8080 端口的连接。当客户端连接时,服务器端打印出一个消息,并发送一个 'something' 的消息给客户端。客户端同样打印出接收到的消息。
评论已关闭