hrtools/server/main.go

77 lines
1.1 KiB
Go
Raw Normal View History

2021-04-26 10:42:12 +00:00
package main
import (
2021-04-27 10:36:08 +00:00
"encoding/json"
"log"
2021-04-26 10:42:12 +00:00
"net/http"
"github.com/gin-gonic/gin"
2021-04-27 10:36:08 +00:00
"github.com/gorilla/websocket"
2021-04-26 10:42:12 +00:00
)
2021-04-27 10:36:08 +00:00
var upGrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
2021-04-26 10:42:12 +00:00
}
var RemoteAddress = ":12203"
func init() {
log.SetFlags(log.Llongfile)
}
2021-04-26 10:42:12 +00:00
func main() {
eg := gin.Default()
eg.Use(Cors())
2021-04-27 10:36:08 +00:00
eg.GET("start", func(c *gin.Context) {
2021-04-26 10:42:12 +00:00
c.JSON(0, gin.H{
2021-04-27 10:36:08 +00:00
"task": "ok",
2021-04-26 10:42:12 +00:00
})
})
2021-04-27 10:36:08 +00:00
eg.POST("queue", PostPushQueue)
2021-04-27 10:36:08 +00:00
eg.GET("task", func(c *gin.Context) {
//升级get请求为webSocket协议
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
return
}
defer ws.Close()
mt, message, err := ws.ReadMessage()
if err != nil {
c.Error(err)
return
}
log.Println(string(message))
2021-04-27 10:36:08 +00:00
for {
//读取ws中的数据
log.Println(
"123",
)
task := taskQueue.PopBlock()
taskData, err := json.Marshal(task)
2021-04-27 10:36:08 +00:00
if err != nil {
log.Println(err, task)
continue
2021-04-27 10:36:08 +00:00
}
//写入ws数据
err = ws.WriteMessage(mt, taskData)
2021-04-27 10:36:08 +00:00
if err != nil {
log.Println(err)
2021-04-27 10:36:08 +00:00
break
}
}
})
2021-04-26 10:42:12 +00:00
eg.Run(":12203")
}