将 Websocket 与 express 和 Nodejs 一起使用不起作用
Using Websocket with express and Nodejs not working
我有用于我的快速服务器的代码。当我通过 http 访问路由时服务器工作,但是当我尝试通过 wss 连接到它时它不起作用。我做错了什么?
const morgan = require("morgan");
const cors = require("cors");
const passport = require("passport");
const localStrategy = require("./auth/local");
const jwtStrategy = require("./auth/jwt");
const expressValidator = require("express-validator");
const config = require("./config");
const app = express();
const http = require("http").Server(app);
const io = require("socket.io")(http);
app.use(cors());
app.use(express.json());
app.use(expressValidator());
app.use(morgan("common"));
app.use(passport.initialize());
passport.use(localStrategy);
passport.use(jwtStrategy);
require("./routes")(app);
io.on("connect_error", (err) => {
console.log(`connect_error due to ${err.message}`);
});
io.on("connection", (socket) => {
console.log("a user connected", socket);
});
http.listen(config.port);
module.exports = app;
尝试使用 ws:
代替 wss:
进行快速修复。
wss:
是 ws:
的 TLS 安全版本,类似于 https:
和 http:
。事实上,与服务器的 websocket 连接开始于 http / https 连接。然后它们通过 websocket 协议“升级”到 websocket 连接。
因此,要让 wss:
在您的服务器上工作,首先让 https:
为 express 网络服务器部分工作。 express 后面的 https 服务器也将处理要升级的连接。
我有用于我的快速服务器的代码。当我通过 http 访问路由时服务器工作,但是当我尝试通过 wss 连接到它时它不起作用。我做错了什么?
const morgan = require("morgan");
const cors = require("cors");
const passport = require("passport");
const localStrategy = require("./auth/local");
const jwtStrategy = require("./auth/jwt");
const expressValidator = require("express-validator");
const config = require("./config");
const app = express();
const http = require("http").Server(app);
const io = require("socket.io")(http);
app.use(cors());
app.use(express.json());
app.use(expressValidator());
app.use(morgan("common"));
app.use(passport.initialize());
passport.use(localStrategy);
passport.use(jwtStrategy);
require("./routes")(app);
io.on("connect_error", (err) => {
console.log(`connect_error due to ${err.message}`);
});
io.on("connection", (socket) => {
console.log("a user connected", socket);
});
http.listen(config.port);
module.exports = app;
尝试使用 ws:
代替 wss:
进行快速修复。
wss:
是 ws:
的 TLS 安全版本,类似于 https:
和 http:
。事实上,与服务器的 websocket 连接开始于 http / https 连接。然后它们通过 websocket 协议“升级”到 websocket 连接。
因此,要让 wss:
在您的服务器上工作,首先让 https:
为 express 网络服务器部分工作。 express 后面的 https 服务器也将处理要升级的连接。