msg
This commit is contained in:
@@ -35,7 +35,7 @@ type EventController struct {
|
|||||||
var clients = make(map[int]map[string]*websocket.Conn)
|
var clients = make(map[int]map[string]*websocket.Conn)
|
||||||
|
|
||||||
//广播频道(通道)
|
//广播频道(通道)
|
||||||
var broadcast = make(chan map[int]*model.ImMessageRecord)
|
var broadcast = make(chan *model.ImMessageRecord)
|
||||||
|
|
||||||
// 配置升级程序(升级为websocket)
|
// 配置升级程序(升级为websocket)
|
||||||
var upgrader = websocket.Upgrader{}
|
var upgrader = websocket.Upgrader{}
|
||||||
@@ -89,7 +89,6 @@ func (c *EventController) TestWebsocket() {
|
|||||||
defer ws.Close()
|
defer ws.Close()
|
||||||
var (
|
var (
|
||||||
userID = c.GetString("userID")
|
userID = c.GetString("userID")
|
||||||
msgMap = make(map[int]*model.ImMessageRecord)
|
|
||||||
clientUser = make(map[string]*websocket.Conn)
|
clientUser = make(map[string]*websocket.Conn)
|
||||||
)
|
)
|
||||||
//将当前客户端放入map中
|
//将当前客户端放入map中
|
||||||
@@ -133,8 +132,7 @@ func (c *EventController) TestWebsocket() {
|
|||||||
break //结束循环
|
break //结束循环
|
||||||
} else {
|
} else {
|
||||||
//接受消息 业务逻辑
|
//接受消息 业务逻辑
|
||||||
msgMap[s.GroupID] = s
|
broadcast <- s
|
||||||
broadcast <- msgMap
|
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
dao.WrapAddIDCULDEntity(s, "")
|
dao.WrapAddIDCULDEntity(s, "")
|
||||||
dao.CreateEntity(db, s)
|
dao.CreateEntity(db, s)
|
||||||
@@ -154,21 +152,19 @@ func handleMessages() {
|
|||||||
msg := <-broadcast
|
msg := <-broadcast
|
||||||
globals.SugarLogger.Debugf("clients len %v", len(clients))
|
globals.SugarLogger.Debugf("clients len %v", len(clients))
|
||||||
//循环map客户端
|
//循环map客户端
|
||||||
for groupID, mmsg := range msg {
|
for userID, client := range clients[msg.GroupID] {
|
||||||
for userID, client := range clients[groupID] {
|
//把通道中的消息发送给客户端
|
||||||
//把通道中的消息发送给客户端
|
user, err := dao.GetUser(dao.GetDB(), msg.UserID)
|
||||||
user, err := dao.GetUser(dao.GetDB(), mmsg.UserID)
|
if err == nil {
|
||||||
if err == nil {
|
msg.UserInfo = user
|
||||||
mmsg.UserInfo = user
|
}
|
||||||
}
|
globals.SugarLogger.Debugf("msg %v", utils.Format4Output(msg, false))
|
||||||
globals.SugarLogger.Debugf("msg %v", utils.Format4Output(mmsg, false))
|
err = client.WriteJSON(msg)
|
||||||
err = client.WriteJSON(mmsg)
|
if err != nil {
|
||||||
if err != nil {
|
globals.SugarLogger.Debugf("client.WriteJSON error: %v", err)
|
||||||
globals.SugarLogger.Debugf("client.WriteJSON error: %v", err)
|
client.Close() //关闭
|
||||||
client.Close() //关闭
|
delete(clients[msg.GroupID], userID)
|
||||||
delete(clients[mmsg.GroupID], userID)
|
// delete(clients, client) //删除map中的客户端
|
||||||
// delete(clients, client) //删除map中的客户端
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user