feat: linux文件上传成功通知调整

This commit is contained in:
meilin.huang
2021-11-12 14:35:34 +08:00
parent 78d6c3d1a4
commit 8fcdde3711
6 changed files with 44 additions and 4 deletions

View File

@@ -2,7 +2,9 @@ package ws
import (
"encoding/json"
"mayfly-go/base/global"
"net/http"
"time"
"github.com/gorilla/websocket"
)
@@ -17,11 +19,43 @@ var Upgrader = websocket.Upgrader{
var conns = make(map[uint64]*websocket.Conn, 100)
func init() {
checkConn()
}
// 放置ws连接
func Put(userId uint64, conn *websocket.Conn) {
Delete(userId)
conns[userId] = conn
}
func checkConn() {
heartbeat := time.Duration(20) * time.Second
tick := time.NewTicker(heartbeat)
go func() {
for range tick.C {
// 遍历所有连接ping失败的则删除掉
for uid, conn := range conns {
err := conn.WriteControl(websocket.PingMessage, []byte("ping"), time.Now().Add(heartbeat/2))
if err != nil {
global.Log.Info("删除ping失败的websocket连接uid = ", uid)
Delete(uid)
return
}
}
}
}()
}
// 删除ws连接
func Delete(userid uint64) {
conn := conns[userid]
if conn != nil {
conn.Close()
delete(conns, userid)
}
}
// 对指定用户发送消息
func SendMsg(userId uint64, msg *Msg) {
conn := conns[userId]

View File

@@ -34,6 +34,7 @@ export default {
return;
}
ElNotification({
duration: 0,
title: message.title,
message: message.msg,
type: mtype as any,

View File

@@ -79,6 +79,7 @@
/>
<el-upload
:before-upload="beforeUpload"
:on-success="uploadSuccess"
:headers="{ token }"
:data="{
@@ -456,6 +457,10 @@ export default defineComponent({
}
};
const beforeUpload = (file: File) => {
ElMessage.success(`'${file.name}' 上传中,请关注结果通知`)
}
const dontOperate = (data: any) => {
const path = data.path;
const ls = [
@@ -518,6 +523,7 @@ export default defineComponent({
deleteFile,
downloadFile,
getUploadFile,
beforeUpload,
uploadSuccess,
dontOperate,
formatFileSize,

View File

@@ -8,7 +8,6 @@ import (
"mayfly-go/base/ctx"
"mayfly-go/base/ginx"
"mayfly-go/base/utils"
"mayfly-go/base/ws"
"mayfly-go/server/devops/api/form"
"mayfly-go/server/devops/api/vo"
"mayfly-go/server/devops/application"
@@ -120,10 +119,9 @@ func (m *MachineFile) UploadFile(rc *ctx.ReqCtx) {
g := rc.GinCtx
fid := GetMachineFileId(g)
path := g.PostForm("path")
fileheader, err := g.FormFile("file")
biz.ErrIsNilAppendErr(err, "读取文件失败: %s")
// 通知正在上传
ws.SendMsg(rc.LoginAccount.Id, ws.NewMsg("文件上传", "文件上传中..."))
file, _ := fileheader.Open()
bytes, _ := ioutil.ReadAll(file)

View File

@@ -151,7 +151,7 @@ func (m *machineFileAppImpl) UploadFile(la *model.LoginAccount, fileId uint64, p
createfile.Write(content)
// 保存消息并发送文件上传成功通知
m.msgApp.CreateAndSend(la, ws.SuccessMsg("文件上传", fmt.Sprintf("[%s]文件已成功上传至[%s]", filename, path)))
m.msgApp.CreateAndSend(la, ws.SuccessMsg("文件上传成功", fmt.Sprintf("[%s]文件已成功上传至[%s]", filename, path)))
}

View File

@@ -30,6 +30,7 @@ func (s *System) ConnectWs(g *gin.Context) {
if err = ctx.PermissionHandler(rc); err != nil {
panic(biz.NewBizErr("没有权限"))
}
// 登录账号信息
la := rc.LoginAccount
ws.Put(la.Id, wsConn)