如何让websocket与http公用一个端口
时间: 2024-03-23 08:36:47 浏览: 26
让WebSocket与HTTP公用一个端口的方法是在服务器上同时启用WebSocket和HTTP服务,并将它们绑定到同一个端口。当客户端发送HTTP请求时,服务器将响应该请求。当客户端通过WebSocket发送连接请求时,服务器将接受该请求并将连接升级为WebSocket连接。以下是一个基本的Node.js代码示例,展示如何实现WebSocket和HTTP共用端口:
```javascript
const http = require('http');
const WebSocket = require('ws');
const server = http.createServer((req, res) => {
// 处理HTTP请求
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
const wss = new WebSocket.Server({ server });
wss.on('connection', (ws, req) => {
// 处理WebSocket连接
ws.on('message', (message) => {
console.log(`Received message => ${message}`)
});
ws.send('Hello! Message From Server!!')
});
server.listen(3000, () => {
console.log('Server started on http://localhost:3000');
});
```
在此示例中,我们使用了Node.js内置的HTTP模块和WebSocket库。服务器绑定到端口3000,处理HTTP请求和WebSocket连接。当客户端通过HTTP请求连接时,服务器将响应“Hello World”消息。当客户端通过WebSocket连接时,服务器将发送“Hello! Message From Server!!”消息,并在控制台上打印接收到的消息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)