Skip to content

Commit

Permalink
fix map并发读写
Browse files Browse the repository at this point in the history
  • Loading branch information
link1st committed Aug 20, 2019
1 parent 9b1c69a commit 105d945
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions servers/websocket/client_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,19 @@ func (manager *ClientManager) DelUsers(key string) {
delete(manager.Users, key)
}

// 获取用户的key
func (manager *ClientManager) GetUserKeys() (userKeys []string) {

userKeys = make([]string, 0)
manager.UserLock.Lock()
defer manager.UserLock.Unlock()
for key := range manager.Users {
userKeys = append(userKeys, key)
}

return
}

// 向全部成员(除了自己)发送数据
func (manager *ClientManager) sendAll(message []byte, ignore *Client) {
for conn := range manager.Clients {
Expand Down Expand Up @@ -206,10 +219,7 @@ func GetManagerInfo(isDebug string) (managerInfo map[string]interface{}) {
clients = append(clients, client.Addr)
}

users := make([]string, 0)
for key := range clientManager.Users {
users = append(users, key)
}
users := clientManager.GetUserKeys()

managerInfo["clients"] = clients
managerInfo["users"] = users
Expand Down Expand Up @@ -244,6 +254,9 @@ func GetUserList() (userList []string) {
userList = make([]string, 0)
fmt.Println("获取全部用户")

clientManager.UserLock.RLock()
defer clientManager.UserLock.RUnlock()

for _, v := range clientManager.Users {
userList = append(userList, v.UserId)
}
Expand Down

0 comments on commit 105d945

Please sign in to comment.