修复执行脚本无输出,修复消息中对用户的在线检测
This commit is contained in:
parent
a0e2415370
commit
1578be6b4b
|
|
@ -92,7 +92,7 @@ func FindRunLogByAuthID(auth_id int) []CIDRunLog {
|
||||||
|
|
||||||
func FindRunLogByID(auth_id, cid_id int) []CIDRunLog {
|
func FindRunLogByID(auth_id, cid_id int) []CIDRunLog {
|
||||||
var cidRunLog []CIDRunLog
|
var cidRunLog []CIDRunLog
|
||||||
DB.Debug().Where("cid_id = ? and auth_id = ?", cid_id, auth_id).Find(&cidRunLog)
|
DB.Debug().Where("cid_id = ? and auth_id = ?", cid_id, auth_id).Order("created_at desc").Find(&cidRunLog)
|
||||||
return cidRunLog
|
return cidRunLog
|
||||||
}
|
}
|
||||||
func FindRunLogByCIDLogID(id, auth_id int) []CIDRunLog {
|
func FindRunLogByCIDLogID(id, auth_id int) []CIDRunLog {
|
||||||
|
|
|
||||||
|
|
@ -79,15 +79,15 @@ fi
|
||||||
echo "end"`
|
echo "end"`
|
||||||
//执行脚本
|
//执行脚本
|
||||||
cmd := exec.Command("/bin/bash", "-c", scriptContent)
|
cmd := exec.Command("/bin/bash", "-c", scriptContent)
|
||||||
|
// 使用bytes.Buffer捕获输出
|
||||||
|
var out bytes.Buffer
|
||||||
|
cmd.Stdout = &out
|
||||||
err3 := cmd.Run()
|
err3 := cmd.Run()
|
||||||
err3_info := ""
|
err3_info := ""
|
||||||
if err3 != nil {
|
if err3 != nil {
|
||||||
err3_info = err3.Error()
|
err3_info = err3.Error()
|
||||||
}
|
}
|
||||||
fmt.Println("bash content:", scriptContent)
|
fmt.Println("bash content:", scriptContent)
|
||||||
// 使用bytes.Buffer捕获输出
|
|
||||||
var out bytes.Buffer
|
|
||||||
cmd.Stdout = &out
|
|
||||||
dao.CreateRunLog(req.ID, authID, scriptContent, out.String(), err3_info) //添加执行日志
|
dao.CreateRunLog(req.ID, authID, scriptContent, out.String(), err3_info) //添加执行日志
|
||||||
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
|
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
|
||||||
|
|
||||||
|
|
@ -218,14 +218,14 @@ fi
|
||||||
echo "end"`
|
echo "end"`
|
||||||
//执行脚本
|
//执行脚本
|
||||||
cmd := exec.Command("/bin/bash", "-c", scriptContent)
|
cmd := exec.Command("/bin/bash", "-c", scriptContent)
|
||||||
|
// 使用bytes.Buffer捕获输出
|
||||||
|
var out bytes.Buffer
|
||||||
|
cmd.Stdout = &out
|
||||||
err3 := cmd.Run()
|
err3 := cmd.Run()
|
||||||
err3_info := ""
|
err3_info := ""
|
||||||
if err3 != nil {
|
if err3 != nil {
|
||||||
err3_info = err3.Error()
|
err3_info = err3.Error()
|
||||||
}
|
}
|
||||||
// 使用bytes.Buffer捕获输出
|
|
||||||
var out bytes.Buffer
|
|
||||||
cmd.Stdout = &out
|
|
||||||
dao.CreateRunLog(cid, res.Auth_id, scriptContent, out.String(), err3_info) //添加执行日志
|
dao.CreateRunLog(cid, res.Auth_id, scriptContent, out.String(), err3_info) //添加执行日志
|
||||||
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
|
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,7 @@ func SRMessage(c *gin.Context) {
|
||||||
var res3 []byte
|
var res3 []byte
|
||||||
var msg proto.Message
|
var msg proto.Message
|
||||||
if res2 != "" {
|
if res2 != "" {
|
||||||
|
//若有消息则发送消息
|
||||||
msg.Type = "msg"
|
msg.Type = "msg"
|
||||||
msg.Msg = res2
|
msg.Msg = res2
|
||||||
msg.From_user_id = id1
|
msg.From_user_id = id1
|
||||||
|
|
@ -194,12 +195,25 @@ func SRMessage(c *gin.Context) {
|
||||||
msg.Session = res
|
msg.Session = res
|
||||||
res3, _ = json.Marshal(msg)
|
res3, _ = json.Marshal(msg)
|
||||||
}
|
}
|
||||||
|
//判断对方是否在线,若不在线则发送离线消息,否则正常发送消息
|
||||||
|
if worker.IsContainKey(to_user_id+"_status") == true {
|
||||||
|
if worker.GetRedis(to_user_id+"_status") == "0" {
|
||||||
|
msg.Type = "offline"
|
||||||
|
msg.Msg = "offline"
|
||||||
|
msg.From_user_id = -1
|
||||||
|
msg.Session = res
|
||||||
|
res3, _ = json.Marshal(msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
err2 := ws.WriteMessage(websocket.TextMessage, res3)
|
err2 := ws.WriteMessage(websocket.TextMessage, res3)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
|
worker.SetRedisWithExpire("user_"+id.(string)+"_status", "0", time.Second*120) //设置用户在线状态,1为在线,0为离线,5秒后过期
|
||||||
clientsMux.Lock()
|
clientsMux.Lock()
|
||||||
delete(clients, ws)
|
delete(clients, ws)
|
||||||
clientsMux.Unlock()
|
clientsMux.Unlock()
|
||||||
break
|
break
|
||||||
|
} else {
|
||||||
|
worker.SetRedisWithExpire("user_"+id.(string)+"_status", "1", time.Second*5) //设置用户在线状态,1为在线,0为离线,5秒后过期
|
||||||
}
|
}
|
||||||
time.Sleep(time.Second * 1) // 每1秒查询一次
|
time.Sleep(time.Second * 1) // 每1秒查询一次
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue