websocket详细解析,给出具体代码示例
时间: 2023-10-23 07:22:09 浏览: 158
WebSocket是HTML5新增的协议,它实现了浏览器和服务器之间的全双工通信,使得服务器可以主动向客户端推送消息,而不需要客户端进行轮询。WebSocket协议基于TCP协议实现,使用ws或wss(加密)作为协议标识符。
WebSocket的优点:
1. 支持双向通信,能够实时推送数据。
2. 节省服务器资源和带宽,减少网络延迟。
3. 能够跨域使用。
下面是一个简单的WebSocket代码示例:
服务端代码:
```javascript
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(message) {
console.log('received: %s', message);
});
ws.send('Hello World');
});
```
客户端代码:
```javascript
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = function () {
console.log('Connected to server');
ws.send('Hello Server');
};
ws.onmessage = function (message) {
console.log('received: ', message.data);
};
```
这个示例程序中,服务端创建了一个WebSocket服务器,并监听8080端口。当有客户端连接上来时,就会打印"Client connected"。当客户端发送消息时,服务器会打印"received: "和消息内容。服务器也会发送一条"Hello World"的消息给客户端。
客户端连接到服务器后,会向服务器发送一条"Hello Server"的消息。当服务器收到这条消息时,会打印"received: Hello Server"。服务器也会发送一条"Hello World"的消息给客户端,客户端收到这条消息后,会打印"received: Hello World"。
WebSocket对象提供了以下几个方法:
1. WebSocket():创建WebSocket对象。
2. send():发送消息。
3. close():关闭WebSocket连接。
WebSocket对象提供了以下几个事件:
1. onopen:连接成功事件。
2. onmessage:接收到消息事件。
3. onerror:连接错误事件。
4. onclose:连接关闭事件。
WebSocket的使用需要注意以下几点:
1. WebSocket协议需要服务器端和客户端都支持,一些老的浏览器可能不支持WebSocket。
2. WebSocket协议需要服务器端和客户端都使用http/https协议进行连接,不支持其他协议如ftp等。
3. WebSocket协议需要服务器端和客户端都采用相同的协议版本,不同版本的协议可能不兼容。
总结:
WebSocket协议为开发者提供了一种全新的方式实现实时通信,不需要客户端进行轮询,减少了网络延迟和服务器资源的消耗。但是WebSocket协议需要服务器端和客户端都支持,而且需要采用相同版本的协议进行连接。
阅读全文