Commit 03c475778c5e28b6500cb3d64b1fe100e354aa68
1 parent
5dfa463a
Exists in
master
提交
Showing
2 changed files
with
58 additions
and
0 deletions
Show diff stats
src/HttpServer/logic/function.go
@@ -1303,3 +1303,43 @@ func PrivateChat(message string, uuid int, taruid int) (int, string) { | @@ -1303,3 +1303,43 @@ func PrivateChat(message string, uuid int, taruid int) (int, string) { | ||
1303 | } | 1303 | } |
1304 | return 0, "" | 1304 | return 0, "" |
1305 | } | 1305 | } |
1306 | + | ||
1307 | +func GetRandChatMessage() string { | ||
1308 | + return "小赤佬" | ||
1309 | +} | ||
1310 | + | ||
1311 | +func HandleRandWorldChat() { | ||
1312 | + length, err := redishandler.GetRedisClient().LLen(redis.WORLD_CHAT_INFO_KEY) | ||
1313 | + if err == nil { | ||
1314 | + if length >= CHATLIMITNUM { | ||
1315 | + //需要先把多余的聊天记录删除 | ||
1316 | + delcnt := length - CHATLIMITNUM | ||
1317 | + for i := 0; i < delcnt; i++ { | ||
1318 | + _, err = redishandler.GetRedisClient().RPop(redis.WORLD_CHAT_INFO_KEY) | ||
1319 | + if err != nil { | ||
1320 | + logger.Error("WorldChat failed err=%v", err) | ||
1321 | + } | ||
1322 | + } | ||
1323 | + } | ||
1324 | + } | ||
1325 | + | ||
1326 | + //构建新的结构 | ||
1327 | + var chats QueryChatMessageData | ||
1328 | + chats.Message = GetRandChatMessage() | ||
1329 | + chats.Uuid = -1 | ||
1330 | + chats.Chattime = int(time.Now().Unix()) | ||
1331 | + | ||
1332 | + chats.Headurl = "" | ||
1333 | + chats.Nickname = "" | ||
1334 | + chats.Sex = 1 | ||
1335 | + | ||
1336 | + savestr, err := json.Marshal(&chats) | ||
1337 | + if err != nil { | ||
1338 | + logger.Error("WorldChat err=%v", err) | ||
1339 | + } | ||
1340 | + | ||
1341 | + err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) | ||
1342 | + if err != nil { | ||
1343 | + logger.Error("WorldChat err=%v", err) | ||
1344 | + } | ||
1345 | +} |
src/HttpServer/logic/httpserver.go
@@ -10,14 +10,32 @@ import ( | @@ -10,14 +10,32 @@ import ( | ||
10 | "mysql" | 10 | "mysql" |
11 | "os" | 11 | "os" |
12 | "strconv" | 12 | "strconv" |
13 | + "time" | ||
13 | 14 | ||
14 | //"log" | 15 | //"log" |
15 | "net/http" | 16 | "net/http" |
16 | ) | 17 | ) |
17 | 18 | ||
19 | +var gLastChatTime = 0 | ||
20 | + | ||
18 | //定时处理倒计时 | 21 | //定时处理倒计时 |
19 | func StartHttpTicker() { | 22 | func StartHttpTicker() { |
23 | + ticker := time.NewTicker(time.Second * time.Duration(60)) | ||
24 | + | ||
25 | + go func() { | ||
26 | + for range ticker.C { | ||
27 | + nowtime := int(time.Now().Unix()) | ||
28 | + hour := time.Now().Hour() | ||
29 | + if hour >= 6 && hour <= 10 { | ||
30 | + if nowtime-gLastChatTime >= 20*60 { | ||
31 | + gLastChatTime = nowtime | ||
32 | + HandleRandWorldChat() | ||
33 | + } | ||
20 | 34 | ||
35 | + } | ||
36 | + | ||
37 | + } | ||
38 | + }() | ||
21 | } | 39 | } |
22 | 40 | ||
23 | func StartHttpServe() { | 41 | func StartHttpServe() { |