- 在 ClientData 中添加 sync.Mutex 以确保并发安全 - 实现 SetPlayer 和 GetPlayer 等方法来封装 player 字段的操作 - 更新相关代码以使用新的 ClientData 结构和方法
42 lines
809 B
Go
42 lines
809 B
Go
package entity
|
|
|
|
import "sync"
|
|
|
|
type ClientData struct {
|
|
isCrossDomain bool //是否跨域过
|
|
player *Player //客户实体
|
|
//UserID uint32
|
|
m sync.Mutex
|
|
}
|
|
|
|
func (cd *ClientData) SetPlayer(player *Player) {
|
|
cd.m.Lock()
|
|
defer cd.m.Unlock()
|
|
cd.player = player
|
|
}
|
|
func (cd *ClientData) GetPlayer() *Player {
|
|
cd.m.Lock()
|
|
defer cd.m.Unlock()
|
|
return cd.player
|
|
}
|
|
func (cd *ClientData) SetCrossDomain(isCrossDomain bool) {
|
|
cd.m.Lock()
|
|
defer cd.m.Unlock()
|
|
cd.isCrossDomain = isCrossDomain
|
|
}
|
|
func (cd *ClientData) GetIsCrossDomain() bool {
|
|
cd.m.Lock()
|
|
defer cd.m.Unlock()
|
|
return cd.isCrossDomain
|
|
}
|
|
|
|
func NewClientData() *ClientData {
|
|
cd := ClientData{
|
|
isCrossDomain: false,
|
|
player: nil,
|
|
m: sync.Mutex{},
|
|
}
|
|
return &cd
|
|
|
|
}
|