aa
This commit is contained in:
@@ -67,7 +67,7 @@ type ImMessageRecord struct {
|
|||||||
Weight int `json:"weight"`
|
Weight int `json:"weight"`
|
||||||
Height int `json:"height"`
|
Height int `json:"height"`
|
||||||
// UnReadFlag int `json:"unReadFlag"` //未读标志,为1则此条消息未读
|
// UnReadFlag int `json:"unReadFlag"` //未读标志,为1则此条消息未读
|
||||||
|
Key string `orm:"-" json:"key"`
|
||||||
UserInfo *GetUserResult `orm:"-" json:"userInfo"`
|
UserInfo *GetUserResult `orm:"-" json:"userInfo"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ type EventController struct {
|
|||||||
|
|
||||||
//连接的客户端,吧每个客户端都放进来
|
//连接的客户端,吧每个客户端都放进来
|
||||||
var clients = make(map[int]map[string]*websocket.Conn)
|
var clients = make(map[int]map[string]*websocket.Conn)
|
||||||
|
var clientsHeart = make(map[string]*websocket.Conn)
|
||||||
|
|
||||||
//广播频道(通道)
|
//广播频道(通道)
|
||||||
var broadcast = make(chan *model.ImMessageRecord)
|
var broadcast = make(chan *model.ImMessageRecord)
|
||||||
@@ -74,6 +75,7 @@ func (c *EventController) TestWebsocket() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
clientUser[userID] = ws
|
clientUser[userID] = ws
|
||||||
|
clientsHeart[userID] = ws
|
||||||
for _, v := range messageGroups {
|
for _, v := range messageGroups {
|
||||||
if len(clients[v.GroupID]) > 0 {
|
if len(clients[v.GroupID]) > 0 {
|
||||||
clients[v.GroupID][userID] = ws
|
clients[v.GroupID][userID] = ws
|
||||||
@@ -147,6 +149,16 @@ func handleMessages() {
|
|||||||
for {
|
for {
|
||||||
//读取通道中的消息
|
//读取通道中的消息
|
||||||
msg := <-broadcast
|
msg := <-broadcast
|
||||||
|
if msg.GroupID == 0 {
|
||||||
|
globals.SugarLogger.Debugf("heart %v", utils.Format4Output(msg, false))
|
||||||
|
if err := clientsHeart[msg.UserID].WriteJSON(&model.ImMessageRecord{
|
||||||
|
Key: "pang",
|
||||||
|
}); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("heart client.WriteJSON error: %v", err)
|
||||||
|
clientsHeart[msg.UserID].Close() //关闭
|
||||||
|
delete(clientsHeart, msg.UserID)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
globals.SugarLogger.Debugf("clients len %v", len(clients))
|
globals.SugarLogger.Debugf("clients len %v", len(clients))
|
||||||
//循环map客户端
|
//循环map客户端
|
||||||
for userID, client := range clients[msg.GroupID] {
|
for userID, client := range clients[msg.GroupID] {
|
||||||
@@ -165,6 +177,7 @@ func handleMessages() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 查询聊天记录
|
// @Title 查询聊天记录
|
||||||
|
|||||||
Reference in New Issue
Block a user