如果我使用express
中间件,socket.io
也会使用它吗?
我需要为每个http请求和socket.io
请求调用中间件
import express from "express";
import { createServer } from "http";
import { Server } from "socket.io";
const app = express();
const httpServer = createServer(app);
const io = new Server(httpServer, { /* options */ });
// If I use express middleware will socket.io use it too?
app.use(middleware)
// Or I should use it for io too
io.engine.use(middleware);
httpServer.listen(3000);
1条答案
按热度按时间1dkrff031#
从Socket.IO文档中了解与Express中间件的兼容性:
由于Socket.IO中间件没有绑定到通常的HTTP请求/响应周期,因此它们与Express中间件并不真正兼容。
也就是说,从版本
4.6.0
开始,Express middlewares现在由底层引擎支持:每个传入的HTTP请求(包括升级请求)都会调用中间件。
编辑:
也许你可以实现一个简单的例子并给予一下。简单的例子如下: