Commit 0a7bf8ed authored by szh's avatar szh

添加跨域 广播设置为5秒

parent a3a21b80
...@@ -101,6 +101,6 @@ func broadcast() { ...@@ -101,6 +101,6 @@ func broadcast() {
panic(err) panic(err)
} }
log.Println(send) log.Println(send)
time.Sleep(time.Second) time.Sleep(time.Second*5)
} }
} }
\ No newline at end of file
...@@ -15,6 +15,7 @@ import ( ...@@ -15,6 +15,7 @@ import (
"regexp" "regexp"
"strings" "strings"
"time" "time"
"io/ioutil"
) )
type ProcessInfo struct { type ProcessInfo struct {
...@@ -30,6 +31,19 @@ type updateInfo struct { ...@@ -30,6 +31,19 @@ type updateInfo struct {
} }
type Server struct {
Disks []*Disk //硬盘信息
NodeProcesssInfo ProcessInfo //节点信息
Error error //节点错误信息
}
type Disk struct {
UseP string //硬盘使用率
Filesystem string
Type string //硬盘格式
SizeK string //硬盘大小
}
var Bityuan ProcessInfo var Bityuan ProcessInfo
var UpdateInfo updateInfo var UpdateInfo updateInfo
var NodeError error var NodeError error
...@@ -60,8 +74,15 @@ func getProcessInfo(keyfile string)string{ ...@@ -60,8 +74,15 @@ func getProcessInfo(keyfile string)string{
func getWalletInfo()error{ func getWalletInfo()error{
rawProcessInfo:=getProcessInfo(setting.BityuanSetting.Name) rawProcessInfo:=getProcessInfo(setting.BityuanSetting.Name)
log.Println(rawProcessInfo) log.Println("getWalletInfo",rawProcessInfo)
if rawProcessInfo==""{ if rawProcessInfo==""{
//钱包节点未启动
//检查服务器状态
err := MonitorServer()
if err != nil {
log.Println("MonitorServer",err)
return err
}
StartProcess(setting.Chain33Pai.Auto) StartProcess(setting.Chain33Pai.Auto)
var buffer bytes.Buffer var buffer bytes.Buffer
cmd:=exec.Command("find","/media","-name",setting.BityuanSetting.Name) cmd:=exec.Command("find","/media","-name",setting.BityuanSetting.Name)
...@@ -104,6 +125,7 @@ func StrFilter(str []string,filter string)(res []string){ ...@@ -104,6 +125,7 @@ func StrFilter(str []string,filter string)(res []string){
//corn job for collecting chain33 process info //corn job for collecting chain33 process info
func CornProcessJob(ticker *time.Ticker){ func CornProcessJob(ticker *time.Ticker){
NodeError = getWalletInfo() NodeError = getWalletInfo()
for { for {
select { select {
...@@ -187,3 +209,28 @@ func StartProcess(scriptsAddr string)(err error){ ...@@ -187,3 +209,28 @@ func StartProcess(scriptsAddr string)(err error){
return return
} }
//
func MonitorServer() error {
//获取硬盘情况
cmd := exec.Command("df","-T")
stdout, err := cmd.StdoutPipe()
err = cmd.Start()
if err != nil {
log.Println("MonitorServer","df -T start " ,err)
return err
}
content, err := ioutil.ReadAll(stdout)
if err != nil {
log.Println(err)
return err
}
err = cmd.Wait()
if err != nil {
log.Println("MonitorServer","df -T end" ,err)
return err
}
log.Println("MonitorServer",string(content))
return nil
}
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
_ "chain33-pai/docs" _ "chain33-pai/docs"
"chain33-pai/routers/api/v1" "chain33-pai/routers/api/v1"
"net/http"
) )
// InitRouter initialize routing information // InitRouter initialize routing information
...@@ -11,7 +12,7 @@ func InitRouter() *gin.Engine { ...@@ -11,7 +12,7 @@ func InitRouter() *gin.Engine {
r := gin.New() r := gin.New()
r.Use(gin.Logger()) r.Use(gin.Logger())
r.Use(gin.Recovery()) r.Use(gin.Recovery())
r.Use(Cors())
apiv1 := r.Group("/pai") apiv1 := r.Group("/pai")
//获取树莓派基本信息 //获取树莓派基本信息
apiv1.POST("/devdetail",v1.GetDevdetail) apiv1.POST("/devdetail",v1.GetDevdetail)
...@@ -27,3 +28,23 @@ func InitRouter() *gin.Engine { ...@@ -27,3 +28,23 @@ func InitRouter() *gin.Engine {
return r return r
} }
// 处理跨域请求,支持options访问
func Cors() gin.HandlerFunc {
return func(c *gin.Context) {
method := c.Request.Method
c.Header("Access-Control-Allow-Origin", "*")
c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token,Authorization") //Content-Type,AccessToken,X-CSRF-Token,Authorization,Token,FZM-APP-ID
c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, PATCH, DELETE")
c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")
c.Header("Access-Control-Allow-Credentials", "true")
// 放行所有OPTIONS方法,因为有的模板是要请求两次的
if method == "OPTIONS" {
c.AbortWithStatus(http.StatusNoContent)
}
// 处理请求
c.Next()
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment