diff --git a/controller/notice.go b/controller/notice.go new file mode 100644 index 0000000..e2da358 --- /dev/null +++ b/controller/notice.go @@ -0,0 +1,29 @@ +package controller +import( + "github.com/gorilla/websocket" + "log" + "net/http" +) +var upgrader = websocket.Upgrader{} +//推送新邮件到达 +func PushMailServer(w http.ResponseWriter, r *http.Request){ + c, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Print("upgrade:", err) + return + } + defer c.Close() + for { + mt, message, err := c.ReadMessage() + if err != nil { + log.Println("read:", err) + break + } + log.Printf("recv: %s", message) + err = c.WriteMessage(mt, []byte("{\"title\":\"测试\"}")) + if err != nil { + log.Println("write:", err) + break + } + } +} diff --git a/go.mod b/go.mod index 3ac4b14..d0342e0 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,7 @@ require ( github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 github.com/emersion/go-smtp v0.13.0 github.com/gobuffalo/packr v1.30.1 + github.com/gorilla/websocket v1.4.2 golang.org/x/net v0.0.0-20200513185701-a91f0712d120 golang.org/x/text v0.3.2 ) diff --git a/go.sum b/go.sum index 2bbb67f..7fd27ea 100644 --- a/go.sum +++ b/go.sum @@ -31,6 +31,8 @@ github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg= github.com/gobuffalo/packr v1.30.1/go.mod h1:ljMyFO2EcrnzsHsN99cvbq055Y9OhRrIaviy289eRuk= github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= diff --git a/server.go b/server.go index 206a4dc..fc98618 100644 --- a/server.go +++ b/server.go @@ -41,6 +41,8 @@ func main() { mux.HandleFunc("/send", controller.FolderSend) //聊天界面 mux.HandleFunc("/chat_main", controller.ActionMain) + //推送新邮件 + mux.HandleFunc("/push_mail", controller.PushMailServer) //监听端口 //http.ListenAndServe(":8080", nil) //var myHandler http.Handler diff --git a/static/html/header.html b/static/html/header.html index 9cef85c..656d017 100644 --- a/static/html/header.html +++ b/static/html/header.html @@ -51,3 +51,4 @@ + \ No newline at end of file diff --git a/static/html/list.html b/static/html/list.html index 2930fe9..90fe7db 100644 --- a/static/html/list.html +++ b/static/html/list.html @@ -1,5 +1,4 @@ {{.Header}} -