liuxiaolu 6 år sedan
förälder
incheckning
acbe138c6c

+ 9 - 3
src/jfw/front/pchelper.go

@@ -159,6 +159,7 @@ func (l *PcHelper) Login() error {
 }
 
 func (l *PcHelper) Logout() {
+	defer util.Catch()
 	l.DelSession(redisKey_openid)
 	deleteIdentSession_(l.Session())
 	l.ServeJson(map[string]interface{}{
@@ -167,33 +168,38 @@ func (l *PcHelper) Logout() {
 }
 
 func (l *PcHelper) GetSubscribeToken() error {
+	defer util.Catch()
 	mac := l.GetString("mac")
 	token := l.GetString("token")
 	deMac, phone := decryptUToken(token)
 	reToken := ""
+	status := 0
 	if phone != "" && mac == deMac {
 		reToken = getSToken(token)
 		redis.Put(redisPool, redisKeyPrefix_PPVOpenid+phone, 1, timeout)
+		status = 1//success
 	} else {
 		reToken = ""
+		status = -1
 	}
 	result := map[string]interface{}{
 		"token": reToken,
+		"status":status,
 	}
 	l.ServeJson(result)
 	return nil
 }
 
 func (l *PcHelper) ToPushView() error {
+	defer util.Catch()
 	token := l.GetString("token")
-	mac := l.GetString("mac")
-	if token != "" && mac != "" {
+	if token != "" {
 		deMac, phone := decryptSToken(token)
 		b, err := redis.Exists(redisPool, redisKeyPrefix_PPVOpenid+phone)
 		if err != nil {
 			log.Println("redis key "+redisKeyPrefix_PPVOpenid+phone, err.Error())
 		} else {
-			if phone != "" && mac == deMac && b {
+			if phone != "" && deMac == "" && b {
 				l.SetSession(redisKey_openid, phone)
 				return l.Render("/pchelper/pushView.html")
 			}

+ 2 - 1
src/jfw/modules/pc/server/src/config.json

@@ -1,4 +1,5 @@
 {
   "port":":8082",
-  "redisAddr":"other=192.168.3.18:2379"
+  "redisAddr":"other=192.168.3.18:2379",
+  "redisOfflineMsgTimeout":604800
 }

+ 3 - 2
src/jfw/modules/pc/server/src/config/config.go

@@ -8,8 +8,9 @@ import (
 )
 
 type Config struct {
-	Port      string `json:"port"`
-	RedisAddr string `json:"redisAddr"`
+	Port                   string `json:"port"`
+	RedisAddr              string `json:"redisAddr"`
+	RedisOfflineMsgTimeout int    `json:"redisOfflineMsgTimeout"`
 }
 
 var SysConfig Config

+ 1 - 1
src/jfw/modules/pc/server/src/main.go

@@ -50,7 +50,7 @@ func echo(w http.ResponseWriter, r *http.Request) {
 		log.Printf("recv: %s", message)
 		msg := new(push.Msg)
 		json.Unmarshal(message, msg)
-		//Param 需解密
+		//Param 加密否?
 		if msg.Param != "" {
 			if msg.Act == "join"{
 				log.Println(msg.Param, "加入")

+ 3 - 3
src/jfw/modules/pc/server/src/push/client.go

@@ -5,6 +5,7 @@ import (
 	"sync"
 	"github.com/gorilla/websocket"
 	"qfw/util/redis"
+	"config"
 )
 
 var mapping = make(map[string]*websocket.Conn)
@@ -12,8 +13,7 @@ var lock = new(sync.RWMutex)
 
 var (
 	redisPool      = "other"
-	redisKeyPrefix = "pc_push_"
-	timeout        = 60 * 60 * 24 * 7
+	redisKeyPrefix = "pc_push_history_"
 )
 
 func Add(code string, con *websocket.Conn) {
@@ -55,7 +55,7 @@ func Write(code string, json interface{}) bool {
 		}
 	} else {
 		//TODO 存入redis,客户端下次上线自动提醒,7日有效期。
-		redis.Put(redisPool, redisKeyPrefix+code, json, timeout)
+		redis.Put(redisPool, redisKeyPrefix+code, json, config.SysConfig.RedisOfflineMsgTimeout)
 		return false
 	}
 	return true

+ 1 - 1
src/jfw/modules/pc/server/src/push/push.go

@@ -43,7 +43,7 @@ func (s *Service) PushMsg(request *[]byte, repl *string) error {
 		return nil
 	} else {
 		*repl = "n"
-		log.Println("客户不在线")
+		log.Println("客户不在线")
 		return nil
 	}
 }