socket.io结合Express的API

时间:2022-09-22 19:43:26

服务器

// 创建应用设置
const app = express();
// 根据设置创建服务器
const server = require('http').createServer(app);
// 使用socket监听服务器
const io = require('socket.io').listen(server);

// 监听连接
io.on('connection', socket=>{

    // 监听消息
    socket.on('message', data => {});
    // 监听断开连接
    socket.on('disconnect', error => {});
    // 监听自定义事件
    socket.on('my event', data => {});

    // 发送消息
    socket.send(data);
    // 发送自定义事件
    socket.emit('my event', data);

    // 广播消息
    socket.broadcast.send(data);
    // 广播自定义事件
    socket.broadcast.$emit('my event', data);

});

客户端

引入js

<script src="/socket.io/socket.io.js"></script>
//建立websocket连接
var socket = io.connect('http://localhost:3000');

// 监听消息
socket.on('message', data => {});
// 监听断开连接
socket.on('disconnect', error => {});
// 监听自定义事件
socket.on('my event', data => {});

// 发送消息
socket.send(data);
// 发送自定义事件
socket.emit('my event', data);

总结

  • 获取socket方式不一样。
  • 使用socket传递消息API一致。
  • 服务器端socket有广播功能。