feat:完善信息,增加socket
This commit is contained in:
84
app/basic/api/websocket.go
Normal file
84
app/basic/api/websocket.go
Normal file
@ -0,0 +1,84 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"SciencesServer/app/basic/entity"
|
||||
"SciencesServer/app/logic"
|
||||
"SciencesServer/app/service"
|
||||
"SciencesServer/config"
|
||||
"SciencesServer/serve/logger"
|
||||
"SciencesServer/utils"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gorilla/websocket"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type Websocket struct{}
|
||||
|
||||
var upGrader = websocket.Upgrader{
|
||||
CheckOrigin: func(r *http.Request) bool {
|
||||
return true
|
||||
},
|
||||
ReadBufferSize: 1024,
|
||||
WriteBufferSize: 1024,
|
||||
}
|
||||
|
||||
func (*Websocket) Ws(key string, session logic.ISession) func(ctx *gin.Context) {
|
||||
return func(c *gin.Context) {
|
||||
conn, err := upGrader.Upgrade(c.Writer, c.Request, nil)
|
||||
|
||||
if err != nil {
|
||||
logger.ErrorF("Conn错误【%s】", err)
|
||||
return
|
||||
}
|
||||
token := c.Query(config.APIRequestToken)
|
||||
|
||||
resp := &entity.Message{
|
||||
Message: "Success",
|
||||
}
|
||||
if token == "" {
|
||||
resp.Code = -1
|
||||
resp.Message = "Token异常,无权限链接"
|
||||
_ = conn.WriteMessage(websocket.TextMessage, utils.AnyToByte(&service.Message{
|
||||
Prefix: resp.Prefix(),
|
||||
INotice: resp,
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
if err = service.NewAuthToken(token).Auth(key, session); err != nil {
|
||||
resp.Code = -1
|
||||
resp.Message = err.Error()
|
||||
_ = conn.WriteMessage(websocket.TextMessage, utils.AnyToByte(&service.Message{
|
||||
Prefix: resp.Prefix(),
|
||||
INotice: resp,
|
||||
}))
|
||||
return
|
||||
}
|
||||
client := service.NewWebsocket(session.GetStringUID(), conn)
|
||||
service.HubMessage.RegisterHandle(client)
|
||||
// 连接成功通知
|
||||
_ = conn.WriteMessage(websocket.TextMessage, utils.AnyToByte(&service.Message{
|
||||
Prefix: resp.Prefix(),
|
||||
INotice: resp,
|
||||
}))
|
||||
go client.Write()
|
||||
}
|
||||
}
|
||||
|
||||
func (*Websocket) Publish(c *gin.Context) {
|
||||
//key := c.Query("key")
|
||||
fmt.Println(1232132132132132131)
|
||||
service.HubMessage.BroadcastHandle(&entity.Message{
|
||||
Code: 0,
|
||||
Message: "你有一条新的待办事项",
|
||||
})
|
||||
//service.HubMessage.EmitHandle(&service.HubEmit{
|
||||
// ID: "2118935188548358144",
|
||||
// Msg: &entity.Message{
|
||||
// Code: 0,
|
||||
// Message: "你有一条新的待办事项",
|
||||
// },
|
||||
//})
|
||||
APISuccess()(c)
|
||||
}
|
@ -17,6 +17,7 @@ type Area struct {
|
||||
type (
|
||||
// IdentityForCompany 公司附加信息
|
||||
IdentityForCompany struct {
|
||||
Kind int `json:"kind" form:"kind" binding:"required"`
|
||||
Product string `json:"product" form:"product" binding:"required"` // 企业产品
|
||||
Url string `json:"url" form:"url"` // 企业网站
|
||||
License string `json:"license" form:"license" binding:"required"` // 营业执照
|
||||
|
10
app/basic/entity/message.go
Normal file
10
app/basic/entity/message.go
Normal file
@ -0,0 +1,10 @@
|
||||
package entity
|
||||
|
||||
type Message struct {
|
||||
Code int `json:"code"`
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
func (this *Message) Prefix() string {
|
||||
return "prefix_message"
|
||||
}
|
Reference in New Issue
Block a user