聊天?
This commit is contained in:
@@ -230,3 +230,22 @@ func GetMessageGroupMembers(db *DaoDB, groupID int, memberUserID string) (messag
|
|||||||
err = GetRows(db, &messageGroupMembers, sql, sqlParams)
|
err = GetRows(db, &messageGroupMembers, sql, sqlParams)
|
||||||
return messageGroupMembers, err
|
return messageGroupMembers, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//得到某个用户所在所有群组
|
||||||
|
func GetUserMessageGroups(db *DaoDB, userID string) (messageGroup []*model.MessageGroup, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT group_id
|
||||||
|
FROM message_group
|
||||||
|
WHERE deleted_at = ? AND user_id = ?
|
||||||
|
UNION
|
||||||
|
SELECT group_id
|
||||||
|
FROM message_group_member
|
||||||
|
WHERE deleted_at = ? AND user_id = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{
|
||||||
|
utils.DefaultTimeValue, userID,
|
||||||
|
utils.DefaultTimeValue, userID,
|
||||||
|
}
|
||||||
|
err = GetRows(db, &messageGroup, sql, sqlParams)
|
||||||
|
return messageGroup, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -86,12 +86,15 @@ 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)
|
msgMap = make(map[int]*model.ImMessageRecord)
|
||||||
groupID int
|
groupID int
|
||||||
)
|
)
|
||||||
//将当前客户端放入map中
|
//将当前客户端放入map中
|
||||||
// clients[vendorOrderID] = append(clients[vendorOrderID], ws)
|
messageGroups, _ := dao.GetUserMessageGroups(dao.GetDB(), userID)
|
||||||
|
for _, v := range messageGroups {
|
||||||
|
clients[v.GroupID] = append(clients[v.GroupID], ws)
|
||||||
|
}
|
||||||
|
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if globals.IsProductEnv() {
|
if globals.IsProductEnv() {
|
||||||
@@ -111,7 +114,6 @@ func (c *EventController) TestWebsocket() {
|
|||||||
for {
|
for {
|
||||||
//接收客户端的消息
|
//接收客户端的消息
|
||||||
err := ws.ReadJSON(&s)
|
err := ws.ReadJSON(&s)
|
||||||
clients[s.GroupID] = append(clients[s.GroupID], ws)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Debugf("页面可能断开啦 ws.ReadJSON error: %v", err.Error())
|
globals.SugarLogger.Debugf("页面可能断开啦 ws.ReadJSON error: %v", err.Error())
|
||||||
index := 0
|
index := 0
|
||||||
@@ -130,9 +132,10 @@ func (c *EventController) TestWebsocket() {
|
|||||||
//接受消息 业务逻辑
|
//接受消息 业务逻辑
|
||||||
msgMap[s.GroupID] = s
|
msgMap[s.GroupID] = s
|
||||||
broadcast <- msgMap
|
broadcast <- msgMap
|
||||||
|
go func() {
|
||||||
dao.WrapAddIDCULDEntity(s, "")
|
dao.WrapAddIDCULDEntity(s, "")
|
||||||
dao.CreateEntity(db, s)
|
dao.CreateEntity(db, s)
|
||||||
// fmt.Println("接受到从页面上反馈回来的信息 ", utils.Format4Output(s, false))
|
}()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user