package ws import ( "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "net/http" "sync" ) type User struct { Conn *websocket.Conn Name string Id string Avator string To_id string } type Message struct { conn *websocket.Conn context *gin.Context content []byte messageType int } type TypeMessage struct { Type interface{} `json:"type"` Data interface{} `json:"data"` } type ClientMessage struct { Name string `json:"name"` Avator string `json:"avator"` Id string `json:"id"` VisitorId string `json:"visitor_id"` Group string `json:"group"` Time string `json:"time"` ToId string `json:"to_id"` Content string `json:"content"` City string `json:"city"` ClientIp string `json:"client_ip"` Refer string `json:"refer"` } var ClientList = make(map[string]*User) var KefuList = make(map[string][]*User) var message = make(chan *Message) var upgrader = websocket.Upgrader{} var Mux sync.RWMutex func init() { upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, // 解决跨域问题 CheckOrigin: func(r *http.Request) bool { return true }, } }