使用express-ws时,返回1005状态码且直接断开连接。
经过实验,发现router.ws的回调函数根本没有执行,就直接断开连接。
Postman上面显示是先断开连接,然后有说连接成功,但是连接还是断开的。
这是源代码,是把express.Router()导出,接收导出的路由处理没有问题,也就是路径不成问题。
const express=require('express');
const router=express.Router();
const ws=require("express-ws");
const ttsql={ // 无关紧要的代码
}
let players_ws=[];
ws(router);
router.post("/enter/public",async(req,res,next)=>{ // 无关紧要的代码
})
router.post("/get-players",async(req,res,next)=>{ // 无关紧要的代码
})
router.ws("/ws",(ws,req)=>{
console.log("ws");
ws.on("close",()=>{
console.log("close");
})
ws.on("message",(msg)=>{
console.log(msg);
try{
msg=JSON.parse(msg);
}catch(err){
ws.send(JSON.stringify({code:3}));
return ws.close();
}
switch(msg.code){ // 无关紧要的代码
}
})
})
module.exports={
type:"router",
router
}