websocket的使用教程
时间: 2023-09-02 11:14:03 浏览: 60
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得浏览器和服务器之间的实时通信变得更加容易。这篇教程将介绍如何使用WebSocket。
### 客户端
#### 建立WebSocket连接
在客户端,我们可以使用JavaScript中的WebSocket API来建立WebSocket连接。首先,我们需要创建一个WebSocket对象并指定服务器的URL:
```
var ws = new WebSocket("ws://example.com/socket");
```
在这个例子中,我们使用ws协议来连接example.com上的服务器的socket端点。如果要使用wss协议(加密的WebSocket连接),则需要在URL中使用wss。
#### 发送和接收消息
建立连接后,我们可以使用WebSocket对象的send()方法向服务器发送消息:
```
ws.send("Hello, world!");
```
我们还可以为WebSocket对象添加一个onmessage事件处理程序来处理从服务器接收到的消息:
```
ws.onmessage = function(event) {
console.log("Received message: " + event.data);
};
```
在这个例子中,我们使用console.log()函数将接收到的消息打印到控制台。
#### 关闭连接
如果我们想要关闭WebSocket连接,可以使用WebSocket对象的close()方法:
```
ws.close();
```
我们还可以为WebSocket对象添加一个onclose事件处理程序来处理连接关闭事件:
```
ws.onclose = function(event) {
console.log("Connection closed: " + event.code + " " + event.reason);
};
```
在这个例子中,我们使用console.log()函数将关闭事件的代码和原因打印到控制台。
### 服务器端
#### 建立WebSocket服务器
要建立WebSocket服务器,我们可以使用许多不同的库和框架。在这个例子中,我们将使用Node.js和ws库。
首先,我们需要安装ws库:
```
npm install ws
```
然后,我们可以创建一个WebSocket服务器并侦听连接:
```
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 8080 });
wss.on('connection', function(ws) {
console.log('Client connected');
ws.on('message', function(message) {
console.log('Received message: ' + message);
ws.send('Hello, client!');
});
ws.on('close', function() {
console.log('Client disconnected');
});
});
```
在这个例子中,我们创建了一个WebSocket服务器并侦听8080端口。当客户端连接时,我们使用console.log()函数打印一条消息。当接收到消息时,我们再次使用console.log()函数打印一条消息,并向客户端发送一条消息。当连接关闭时,我们也打印一条消息。
#### 发送和接收消息
要向客户端发送消息,我们可以调用WebSocket对象的send()方法:
```
ws.send('Hello, client!');
```
我们还可以使用WebSocket对象的onmessage事件处理程序来处理从客户端接收到的消息:
```
ws.on('message', function(message) {
console.log('Received message: ' + message);
});
```
在这个例子中,我们使用console.log()函数将接收到的消息打印到控制台。
#### 关闭连接
要关闭WebSocket连接,我们可以调用WebSocket对象的close()方法:
```
ws.close();
```
我们还可以使用WebSocket对象的onclose事件处理程序来处理连接关闭事件:
```
ws.on('close', function() {