簡體   English   中英

使用 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 webserver 部分工作。 Express 后面的 https 服務器也將處理要升級的連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM