/
misc.go
121 lines (110 loc) · 3.41 KB
/
misc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package lib
import (
"schat/proto/cs"
"schat/proto/ss"
"schat/servers/comm"
)
func RecvCommonNotify(pconfig *Config, pnotify *ss.MsgCommonNotify) {
var _func_ = "<RecvCommonNotify>"
log := pconfig.Comm.Log
uid := pnotify.Uid
//c_key
c_key := GetClientKey(pconfig, uid)
if c_key == 0 {
log.Err("%s offline! uid:%d type:%d", _func_, uid, pnotify.NotifyType)
return
}
//cs
pv, err := cs.Proto2Msg(cs.CS_PROTO_COMMON_NOTIFY)
if err != nil {
log.Err("%s get msg fail! uid:%d err:%v", _func_, uid, err)
return
}
pmsg, ok := pv.(*cs.CSCommonNotify)
if !ok {
log.Err("%s not CSCommonNotify! uid:%d", _func_, uid)
return
}
//proto
switch pnotify.NotifyType {
case ss.COMMON_NOTIFY_TYPE_NOTIFY_FILE_ADDR:
if pnotify.IntV == 0 || pnotify.Strs == nil || len(pnotify.Strs) == 0 {
log.Err("%s file addr empty! uid:%d", _func_, uid)
return
}
pmsg.NotifyType = cs.COMMON_NOTIFY_T_FILE_ADDR
pmsg.StrS = pnotify.Strs
pmsg.IntV = pnotify.IntV
log.Debug("%s file_addr:%v uid:%d", _func_, pmsg.StrS, uid)
case ss.COMMON_NOTIFY_TYPE_NOTIFY_ADD_MEMBER:
if pnotify.GrpId == 0 || pnotify.StrV == "" || pnotify.IntV == 0 {
log.Err("%s add member arg nil! uid:%d", _func_, uid)
return
}
pmsg.NotifyType = cs.COMMON_NOTIFY_T_ADD_MEM
pmsg.GrpId = pnotify.GrpId
pmsg.StrV = pnotify.StrV
pmsg.IntV = pnotify.IntV
log.Debug("%s add member id:%d grp_id:%d grp_name:%s", _func_, pmsg.IntV, pmsg.GrpId, pmsg.StrV)
case ss.COMMON_NOTIFY_TYPE_NOTIFY_DEL_MEMBER:
if pnotify.GrpId == 0 || pnotify.StrV == "" || pnotify.IntV == 0 {
log.Err("%s del member arg nil! uid:%d", _func_, uid)
return
}
pmsg.NotifyType = cs.COMMON_NOTIFY_T_DEL_MEM
pmsg.GrpId = pnotify.GrpId
pmsg.StrV = pnotify.StrV
pmsg.IntV = pnotify.IntV
log.Debug("%s del member id:%d grp_id:%d grp_name:%s", _func_, pmsg.IntV, pmsg.GrpId, pmsg.StrV)
case ss.COMMON_NOTIFY_TYPE_NOTIFY_HEAD_URL:
if pnotify.StrV == "" {
log.Err("%s head url arg nil! uid:%d", _func_, uid)
return
}
pmsg.NotifyType = cs.COMMON_NOTIFY_T_HEAD_URL
pmsg.StrV = pnotify.StrV
log.Debug("%s head_url url:%s", _func_, pmsg.StrV)
case ss.COMMON_NOTIFY_TYPE_NOTIFY_ENTER_GROUP:
if pnotify.GrpId == 0 {
log.Err("%s grp_id illegal! uid:%d" , _func_ , uid)
return
}
pmsg.NotifyType = cs.COMMON_NOTIFY_T_ENTER_GROUP
pmsg.GrpId = pnotify.GrpId
pmsg.StrV = pnotify.StrV
log.Debug("%s enter_group grp_id:%d grp_name:%s", _func_, pmsg.GrpId , pmsg.StrV)
case ss.COMMON_NOTIFY_TYPE_NOTIFY_SERVER_SET:
if len(pnotify.StrV) <= 0 {
log.Err("%s setting info nil! uid:%d" , _func_ , uid)
return
}
pmsg.NotifyType = cs.COMMON_NOTIFY_T_SERVER_SETTING
pmsg.StrV = pnotify.StrV
log.Debug("%s server_setting:%s uid:%d", _func_, pmsg.StrV , uid)
default:
log.Err("%s unknown proto:%d uid:%d", _func_, pnotify.NotifyType, uid)
return
}
//send
SendToClient(pconfig, c_key, cs.CS_PROTO_COMMON_NOTIFY, pmsg)
}
func SendCommonQuery(pconfig *Config , uid int64 , pquery *cs.CSCommonQuery) {
var _func_ = "<SendCommonQuery>"
log := pconfig.Comm.Log
//req
preq := new(ss.MsgCommonQuery)
preq.Uid = uid
preq.GrpId = pquery.GrpId
preq.QueryType = int32(pquery.QueryType)
preq.IntV = pquery.IntV
preq.StrV = pquery.StrV
//ss
var ss_msg ss.SSMsg
err := comm.FillSSPkg(&ss_msg, ss.SS_PROTO_TYPE_COMMON_QUERY, preq)
if err != nil {
log.Err("%s gen ss failed! err:%v uid:%d", _func_, err, uid)
return
}
//to logic
SendToLogic(pconfig, &ss_msg)
}