WebSocket-socket.io 在 Node.js 中的应用
一、代码案例
1、服务端 express:
// socket 需要依赖于 express 建立的 HTTP 服务器
const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', () => { … });
server.listen(3000);
2、客户端直接通过 socket.io-client 进行连接通讯;
import io from 'socket.io-client';
window.onload = function () {
var socket = io('http://localhost:3000');
// emit 向服务端发送事件, sendMsg 前后端协商事件名 后端接收事件也用这个
socket.emit('sendMsg', { text: ‘hello world’})
}
3、服务端用 on 进行事件的监听,然后相应对应数据到客户端;
io.on('connection', function (socket) {
// 用on监听客户端发来的事件, data即数据
socket.on('sendMsg', function (data) {
// 接收到数据 后端可以做操作, 例如存入数据库中
console.log(data)
// 后端再把接收到的数据返回给前端,让别人也看到, recivMgs也是定义好的事件名这个自己协商。
io.emit('recivMgs', data)
})
})
4、建立连接后,客户端监听服务器发出的事件,获取数据,渲染页面;
socket.on('recivMgs', function (data) {
// 做自己想做的事情
console.log(data)
})