WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。所有浏览器都已对此协议进行支持。
WebSocket协议使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
WebSocket本身是一种协议,没有特定的“类型”。但是,根据实现方式和应用场景,可以分为以下几类:
以下是一个简单的Node.js服务器端WebSocket示例代码:
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('Hello! Message From Server!!');
});
客户端JavaScript代码示例:
const socket = new WebSocket('ws://localhost:8080');
socket.onopen = function() {
console.log('Connected!');
socket.send('Hello Server!');
};
socket.onmessage = function(event) {
console.log('Message from server ', event.data);
};
socket.onerror = function(error) {
console.log('WebSocket Error: ' + error);
};
领取专属 10元无门槛券
手把手带您无忧上云