📅  最后修改于: 2023-12-03 15:05:14.302000             🧑  作者: Mango
Socket.IO 是一个基于 Node.js 的实时网络通讯库,可实现客户端和服务器之间的双向通讯。它支持 WebSockets 协议、轮询和其他实时通讯技术,并提供了一个易于使用的 API,可以在 Node.js 中使用,也可在浏览器中使用。
传统的 HTTP 协议是单向的,浏览器向服务器发起一个请求,服务器返回一个响应。而实时通讯是指在客户端和服务器之间建立一个持久的连接,使得双方可以随时彼此发送消息。实时通讯在很多应用场景中非常有用,例如聊天室、实时协作、游戏等。
在 Node.js 项目中使用 npm 进行安装:
npm install socket.io
在浏览器中使用,可以通过 CDN 引入:
<script src="//cdn.socket.io/socket.io-2.3.0.js"></script>
使用 Socket.IO 的服务器端非常简单,只需要创建一个 HTTP 服务器并将其传递给 Socket.IO,就可以监听客户端的连接:
const app = require('http').createServer();
const io = require('socket.io')(app);
io.on('connection', (socket) => {
console.log('a user connected');
socket.emit('welcome', 'Hello world!');
});
app.listen(3000, () => {
console.log('listening on *:3000');
});
上面的代码中,通过 http
模块创建了一个 HTTP 服务器,然后将该服务器传递给了 Socket.IO,使之可以监听客户端的连接。io.on('connection', ...)
表示当有新的客户端连接时,执行回调函数。在回调函数中可以使用 socket.emit(...)
来向客户端发送消息,socket.on(...)
则可以监听客户端发送的消息。
使用 Socket.IO 的客户端也非常简单,只需要引入 Socket.IO 库,然后连接服务器即可:
<script src="//cdn.socket.io/socket.io-2.3.0.js"></script>
<script>
const socket = io('http://localhost:3000');
socket.on('welcome', (message) => {
console.log(message); // Hello world!
});
</script>
上面的代码中,通过引入 Socket.IO 库,然后使用 io('http://localhost:3000')
连接到服务器。连接成功后,可以使用 socket.on(...)
监听服务器发送的消息,并使用 socket.emit(...)
向服务器发送消息。
Socket.IO 是一个非常实用的实时通讯库,可以通过简单的 API 实现客户端和服务器之间的双向通讯。它支持多种实时通讯技术,在浏览器和 Node.js 中均可使用。如果你需要实现实时通讯的功能,Socket.IO 是一个不错的选择。