evt_online添加渠道信息
This commit is contained in:
parent
0cba0b0b25
commit
aa3a713699
|
@ -8,11 +8,14 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// GenerateOnline 在线统计
|
// GenerateOnline 在线统计
|
||||||
func GenerateOnline(online map[string]int) *RabbitMQData {
|
func GenerateOnline(online map[string]map[string]int) *RabbitMQData {
|
||||||
m := map[int]int{} // 平台:真人数
|
m := map[string]map[int]int{} // 渠道:平台:真人数
|
||||||
for k, v := range online {
|
for k, v := range online {
|
||||||
i, _ := strconv.Atoi(k)
|
m[k] = map[int]int{}
|
||||||
m[i] = v
|
for k1, v1 := range v {
|
||||||
|
pf, _ := strconv.Atoi(k1)
|
||||||
|
m[k][pf] = v1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
params := make(map[string]interface{})
|
params := make(map[string]interface{})
|
||||||
params["Online"] = m
|
params["Online"] = m
|
||||||
|
|
|
@ -7,11 +7,11 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var PlayerOnlineSington = &PlayerOnlineEvent{
|
var PlayerOnlineSington = &PlayerOnlineEvent{
|
||||||
Online: make(map[string]int),
|
OnlineCh: make(map[string]map[string]int),
|
||||||
}
|
}
|
||||||
|
|
||||||
type PlayerOnlineEvent struct {
|
type PlayerOnlineEvent struct {
|
||||||
Online map[string]int
|
OnlineCh map[string]map[string]int
|
||||||
Check bool
|
Check bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,30 +23,40 @@ func (p *PlayerOnlineEvent) Init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 每五秒钟统计一次在线数据
|
// 每五秒钟统计一次在线数据
|
||||||
// 没有登录,登出,掉线情况直接不统计
|
// 没有登录,登出,掉线情况不统计
|
||||||
func (p *PlayerOnlineEvent) Update() {
|
func (p *PlayerOnlineEvent) Update() {
|
||||||
if !p.Check {
|
if !p.Check {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
p.Check = false
|
p.Check = false
|
||||||
m := map[string]int{}
|
onlineCh := map[string]map[string]int{}
|
||||||
for _, player := range PlayerMgrSington.sidMap {
|
for _, player := range PlayerMgrSington.sidMap {
|
||||||
if player != nil && !player.IsRob && player.IsOnLine() {
|
if player != nil && !player.IsRob && player.IsOnLine() {
|
||||||
m[player.Platform] = m[player.Platform] + 1
|
info, ok := onlineCh[player.Channel]
|
||||||
|
if !ok {
|
||||||
|
onlineCh[player.Channel] = map[string]int{}
|
||||||
|
info = onlineCh[player.Channel]
|
||||||
|
}
|
||||||
|
info[player.Platform] += 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(m) == len(p.Online) {
|
if len(onlineCh) == len(p.OnlineCh) {
|
||||||
for k, v := range m {
|
for k, v := range onlineCh {
|
||||||
if p.Online[k] != v {
|
if len(v) != len(p.OnlineCh[k]) {
|
||||||
goto here
|
goto here
|
||||||
}
|
}
|
||||||
|
for k1, v1 := range v {
|
||||||
|
if v1 != p.OnlineCh[k][k1] {
|
||||||
|
goto here
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
here:
|
here:
|
||||||
p.Online = m
|
p.OnlineCh = onlineCh
|
||||||
LogChannelSingleton.WriteMQData(model.GenerateOnline(p.Online))
|
LogChannelSingleton.WriteMQData(model.GenerateOnline(p.OnlineCh))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PlayerOnlineEvent) Shutdown() {
|
func (p *PlayerOnlineEvent) Shutdown() {
|
||||||
|
|
Loading…
Reference in New Issue