---- ===== UserMap ===== 客户端的Session存储map\\ →(a)**list:map[string]*Session**\\ →→存储session的map对象 →(a)**lock:*sync.RWMutex**\\ →→操作map的锁 →(fs)**GetUserMap() *UserMap**\\ →→获取包下面的唯一的userMap对象 →(fs)**GetUserSession(userid string) *Session**\\ →→根据userid获取对应的Session对象 →(fs)**SetUserSession(s *Session)** \\ →→存储一个session对象 →(fs)**DelUserSession(userid string)**\\ →→删除一个Session对象 →(fs)**CloseAllSession()**\\ →→关闭所有存储的客户端Session →(fs)**AllSessionCallBack(handle func(s *Session))**\\ →→对所有的Session执行方法 ---- ===== ServerMap ===== 服务端之间Session存储map\\ →(a)**listSessionKey:map[string]*Session**\\ →→存储session的map对象 →(a)**lock:*sync.RWMutex**\\ →→操作map的锁 →(fs)**GetUserMap() *UserMap**\\ →→获取包下面的唯一的userMap对象 →(fs)**GetServerSession(key string) *Session**\\ →→根据服务器key获取对应的Session对象 →(fs)**SetServerSession(s *Session)** \\ →→存储一个服务器的session对象 →(fs)**DelUserSession(userid string)**\\ →→删除一个Session对象 ---- ===== server.go ===== 本服务的公共Session\\ →(fs)**GetServerClicentSession()*Session**\\ →→获取全服唯一的公共Session,这个Session只要客户端没有服务端 ---- ===== protocol.go ===== pb协议回调方法 存储、读取\\ →(a)**mapProtocol:map[int32]func(*Session,proto.Message)(proto.Message,error){}**\\ →→map存储协议和对应的回调函数 →(fs)**ResigterProtocol(msgName:string,m:func(*Session,proto.Message)(proto.Message,error)) **\\ →→注册协议和回调函数 →(fs)**getrProtocol(id:int32):func(*Session,proto.Message)(proto.Message,error) **\\ →→根据协议ID号获取回调函数 ----