修改为前后端分离模式
This commit is contained in:
58
router/index.js
Normal file
58
router/index.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const Router = require("koa-router")
|
||||
const { getQqListData } = require("../util/getList/qq")
|
||||
const KoaSSEStream = require('koa-sse-stream');
|
||||
const { dowload } = require("../util/download");
|
||||
|
||||
const router = new Router()
|
||||
const dowloadlist = []
|
||||
|
||||
router.get("/getQqList",async (ctx)=>{
|
||||
let url = ctx.query.url
|
||||
let list = await getQqListData(url)
|
||||
ctx.body = list
|
||||
})
|
||||
|
||||
router.get("/startDown",async (ctx)=>{
|
||||
let title = ctx.query.title
|
||||
let url = ctx.query.url
|
||||
dowloadlist.push({
|
||||
title,url
|
||||
})
|
||||
// startDown()
|
||||
ctx.body={
|
||||
code:0,
|
||||
msg:"添加成功"
|
||||
}
|
||||
})
|
||||
// 连接池
|
||||
const clientList = [];
|
||||
// koa-sse-stream 配置
|
||||
const SSE_CONF = {
|
||||
maxClients: 5, // 最大连接数
|
||||
pingInterval: 40000 // 重连时间
|
||||
}
|
||||
router.get('/msg', KoaSSEStream(SSE_CONF), ctx => {
|
||||
// 每次连接会进行一个 push
|
||||
clientList.push(ctx.sse);
|
||||
})
|
||||
let start = false
|
||||
function startDown(){
|
||||
|
||||
dowload(dowloadlist[0],(data,isok)=>{
|
||||
clientList.forEach((i)=>{
|
||||
i.send(isok ? `${dowloadlist[0]}下载完成` : data )
|
||||
if(isok){
|
||||
dowloadlist.shift()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
setInterval(()=>{
|
||||
if(dowloadlist.length != 0 && !start){
|
||||
start = true
|
||||
startDown()
|
||||
}else if(dowloadlist.length == 0){
|
||||
start = false
|
||||
}
|
||||
},1000)
|
||||
module.exports = router
|
||||
Reference in New Issue
Block a user