|
|
|
@ -27,6 +27,7 @@ type StarNotifyC struct {
|
|
|
|
|
// UseChannel 是否使用channel作为信息传递
|
|
|
|
|
UseChannel bool
|
|
|
|
|
isUDP bool
|
|
|
|
|
Sync bool
|
|
|
|
|
// Queue 是用来处理收发信息的简单消息队列
|
|
|
|
|
Queue *starnet.StarQueue
|
|
|
|
|
// Online 当前链接是否处于活跃状态
|
|
|
|
@ -281,12 +282,20 @@ func (star *StarNotifyC) cnotify() {
|
|
|
|
|
mode, key, value := strs[0], strs[1], strs[2]
|
|
|
|
|
if mode[0:2] != "cr" {
|
|
|
|
|
if msg, ok := star.FuncLists[key]; ok {
|
|
|
|
|
if star.Sync {
|
|
|
|
|
msg(CMsg{key, value, mode, nil})
|
|
|
|
|
} else {
|
|
|
|
|
go msg(CMsg{key, value, mode, nil})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if star.defaultFunc != nil {
|
|
|
|
|
if star.Sync {
|
|
|
|
|
star.defaultFunc(CMsg{key, value, mode, nil})
|
|
|
|
|
} else {
|
|
|
|
|
go star.defaultFunc(CMsg{key, value, mode, nil})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if sa, ok := star.lockPool[mode]; ok {
|
|
|
|
|
sa.Key = key
|
|
|
|
@ -296,9 +305,16 @@ func (star *StarNotifyC) cnotify() {
|
|
|
|
|
sa.wait <- 1
|
|
|
|
|
} else {
|
|
|
|
|
if msg, ok := star.FuncLists[key]; ok {
|
|
|
|
|
if star.Sync {
|
|
|
|
|
msg(CMsg{key, value, mode, nil})
|
|
|
|
|
} else {
|
|
|
|
|
go msg(CMsg{key, value, mode, nil})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if star.defaultFunc != nil {
|
|
|
|
|
if star.Sync {
|
|
|
|
|
star.defaultFunc(CMsg{key, value, mode, nil})
|
|
|
|
|
} else {
|
|
|
|
|
go star.defaultFunc(CMsg{key, value, mode, nil})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -307,6 +323,7 @@ func (star *StarNotifyC) cnotify() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ClientStop 终止client端运行
|
|
|
|
|
func (star *StarNotifyC) ClientStop() {
|
|
|
|
|