go-chat/process/userManager.go

42 lines
595 B
Go
Raw Normal View History

2021-04-28 08:16:18 +00:00
package process
import (
"net"
)
type UserProcess struct {
Uid int
Conn net.Conn
}
var onlineUsers = make(map[int]*UserProcess)
func GetOnlineUsers() map[int]*UserProcess {
return onlineUsers
}
func Push(process *UserProcess) {
onlineUsers[process.Uid] = process
}
func Get(id int) *UserProcess {
u, ok := onlineUsers[id]
if ok {
return u
}
return nil
}
func Del(id int) {
delete(onlineUsers, id)
}
func Disconnect(conn net.Conn) {
for u, process := range GetOnlineUsers() {
if conn.RemoteAddr() == process.Conn.RemoteAddr() {
delete(onlineUsers, u)
break
}
}
}