/
layim.go
109 lines (85 loc) · 2.89 KB
/
layim.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
package golang
import (
"fmt"
"strconv"
"ueligo/lib"
"github.com/antonholmquist/jason"
)
func (this TaskType)Authorize( ) ReturnType {
// 从数据库中查询token是否有效
db := new(lib.Mysql)
_, err := db.Connect()
if err != nil {
ret := ReturnType{ "failed","failed" ,this.ReqHeader.Sid, "数据库连接失败:" + err.Error() }
return ret
}
// 获取当前用户信息
fmt.Println( "Authorize this.Data:",string(this.Data) )
json_obj,err := jason.NewObjectFromBytes( this.Data )
if err != nil {
ret := ReturnType{ "failed","failed" ,this.ReqHeader.Sid, "json err:" + err.Error() }
return ret
}
_token ,err:= json_obj.GetString("token")
if err != nil {
ret := ReturnType{ "failed","failed" ,this.ReqHeader.Sid, "json err:" + err.Error() }
return ret
}
_sid ,err:= json_obj.GetString("sid")
if err != nil {
ret := ReturnType{ "failed","failed" ,this.ReqHeader.Sid, "json err:" + err.Error() }
return ret
}
my_record := GetUserRow(db.Db, _sid )
if( my_record["token"]==_token ){
ret := ReturnType{ "ok","welcome" ,this.ReqHeader.Sid,"认证成功"}
return ret
}else{
ret := ReturnType{ "failed","failed" ,this.ReqHeader.Sid, "认证失败" }
return ret
}
}
func (this TaskType)SubscripeGroup( ) ReturnType {
// 从数据库中查询token是否有效
db := new(lib.Mysql)
_, err := db.Connect()
if err != nil {
ret := ReturnType{ "failed","subscripeGroupfailed" ,this.ReqHeader.Sid, "数据库连接失败" + err.Error() }
return ret
}
// 获取当前用户信息
json_obj,_ := jason.NewObjectFromBytes( this.Data )
_token ,_:= json_obj.GetString("token")
_sid,_ := json_obj.GetString("sid")
my_record := GetUserRow(db.Db, _sid )
if( my_record["token"]!=_token ){
fmt.Println( "token:", my_record["token"], _token )
ret := ReturnType{ "failed","subscripeGroupfailed" ,this.ReqHeader.Sid, "数据认证错误" }
return ret
}
uid, _ := strconv.Atoi(my_record["id"])
JoinChannel( db.Db, uid, my_record["sid"] )
ret := ReturnType{ "ok","subscripeGroup" ,this.ReqHeader.Sid,"订阅群组消息成功"}
return ret
}
func (this TaskType)PushMessage( ) string {
sdk:=new(Sdk).Init( this.ReqType,this.ReqHeader,this.Data )
fmt.Println( "PushMessage:", this.ReqHeader.Sid, string(this.Data) )
json_obj,_ := jason.NewObjectFromBytes( this.Data )
to_sid ,_:= json_obj.GetString("sid")
GetBaseCallback := func( resp string ) string {
fmt.Println( "GetBaseCallback:", resp )
return ""
}
sdk.ReqHubAsync( "GetBase", []byte(""), GetBaseCallback )
sdk.Push( this.ReqHeader.Sid, to_sid, this.Data )
return "";
}
func (this TaskType)PushGroupMessage( ) string {
sdk:=new(Sdk).Init( this.ReqType,this.ReqHeader,this.Data )
//fmt.Println( "PushGroupMessage:",this.Sid, this.Data )
json_obj,_ := jason.NewObjectFromBytes( this.Data )
area_id ,_:= json_obj.GetString("area_id")
sdk.Broatcast( this.ReqHeader.Sid,area_id, this.Data )
return "";
}