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