forked from openimsdk/oimws
-
Notifications
You must be signed in to change notification settings - Fork 0
/
statusNetmodule.go
47 lines (43 loc) · 1.42 KB
/
statusNetmodule.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
package module
import (
"encoding/json"
"github.com/openim-sigs/oimws/pkg/common"
"github.com/openim-sigs/oimws/pkg/gate"
log "github.com/xuexihuang/new_log15"
)
var ProgressStartTime int64
func NewStatusAgent(a gate.Agent) {
aUerData := a.UserData().(*common.TAgentUserData)
log.Info("one status ws connect", "sessionId", aUerData.SessionID)
actor, err := NewStatusActor(a, aUerData.SessionID, nil)
if err != nil {
log.Error("NewStatusActor error", "err", err, "sessionId", aUerData.SessionID)
res := &ResponseSt{Type: RESP_OP_TYPE, Success: false, ErrMsg: "NewMQActor error"}
resb, _ := json.Marshal(res)
resSend := &common.TWSData{MsgType: common.MessageText, Msg: resb}
a.WriteMsg(resSend)
a.Close()
return
}
aUerData.ProxyBody = actor
a.SetUserData(aUerData)
log.Info("one status linked", "sessionId", aUerData.SessionID)
}
func CloseStatusAgent(a gate.Agent) {
aUerData := a.UserData().(*common.TAgentUserData)
if aUerData.ProxyBody != nil {
aUerData.ProxyBody.(MActor).Destroy()
aUerData.ProxyBody = nil
}
log.Info("one status dislinkder", "sessionId", a.UserData().(*common.TAgentUserData).SessionID)
}
func DataRecvStatus(data interface{}, a gate.Agent) {
aUerData := a.UserData().(*common.TAgentUserData)
if aUerData.ProxyBody != nil {
err := aUerData.ProxyBody.(MActor).ProcessRecvMsg(data)
if err != nil {
log.Error("溢出错误", "sessionId", aUerData.SessionID)
a.Destroy()
}
}
}