1、ws写到单独的js文件中
const WebSocket = require('ws');
const wss = new WebSocket.Server({port:3001})
let param=""
wss.on('connection',function(ws,req){
param=ws
ws.on('message',function(msg){
console.log(msg);
})
})
function getMessage(data) {
param.send(JSON.stringify(data))
}
module.exports={getMessage}
2、在app.js中引入ws模块
const {getMessage}=require("./ws")
...
...
...
//在需要监听的接口中使用这个方法,并把参数传入
router.post('/create/url',async (ctx)=>{
getMessage(ctx.request.body)
ctx.body="成功"
})
...
...
..
3、前端页面代码
onMounted(() => {
const ws = new WebSocket('ws://localhost:3001/ws') //连接ws
ws.onmessage = (evt) => {
console.log(evt.date) //在这里接收到传过来的数据
}
ws.onopen = () => {
console.log('连接成功')
}
ws.onerror = () => {
console.log('连接错误')
}
ws.onclose = () => {
console.log('连接关闭')
}
})
4、前端config.js需要配置代理
proxy: {
'/ws': {
target: `ws://127.0.0.1:3001`,
changeOrigin: true,
ws: false
}
}