搭建Go后端框架:数据模型、JWT鉴权、租户隔离、WebSocket、REST API路由
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"kefu-sys/server/internal/middleware"
|
||||
"kefu-sys/server/internal/ws"
|
||||
)
|
||||
|
||||
type WsHandler struct{}
|
||||
|
||||
func NewWsHandler() *WsHandler { return &WsHandler{} }
|
||||
|
||||
func (h *WsHandler) Connect(c *gin.Context) {
|
||||
userID := middleware.GetUserID(c)
|
||||
tenantID := middleware.GetTenantID(c)
|
||||
role, _ := c.Get("role")
|
||||
|
||||
client, err := ws.Upgrade(c.Writer, c.Request, userID, tenantID, role.(string))
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"code": 500, "message": "升级连接失败"})
|
||||
return
|
||||
}
|
||||
|
||||
ws.HandleWebSocket(client)
|
||||
}
|
||||
Reference in New Issue
Block a user