游戏中的邮件服务器,LollipopGo开源游戏服务器框架--邮件GM工具调试demo

大家好,我是彬哥,本节给大家讲下LollipopGo v1.0.20190117 版本游戏 服务器 邮件GM工具调试,抛砖引玉了,主要是针对 Go 语言游戏服务器邮件GM工具调试流程做说明。

一 数据库 设计:

state 为 1,表示新邮件;db服务器会定时查找数据库:

a69640dff1e150c4bcbf97fa45310a1a.png

image.png

二 GM工具代码:

package main

import (

"encoding/json"

"fmt"

"io/ioutil"

"log"

"net/http"

"net/url"

)

var daat *EmailST

type EmailST struct {

ID int

Sender string

Name string

Type int

Time string

Content string

IsAdd_ons bool // 是否有附件

IsOpen bool // 是否打开过

IsGet bool // 是否打开过

//ItemList map[int]*ItemST

}

func main() {

daat := &EmailST{

ID: 1,

Sender: "admin",

Name: "admin",

Type: 1,

Content: "qwertyuio",

IsAdd_ons: false,

}

u, _ := url.Parse("http://localhost:8892/GolangLtdGM")

q := u.Query()

q.Set("Protocol", "11")

q.Set("Protocol2", "3")

q.Set("IMsgtype", "1")

fmt.Println("---daat", daat)

str, _ := json.Marshal(&daat)

q.Set("EmailData", string(str))

u.RawQuery = q.Encode()

fmt.Printf("%s /n", u.String())

res, err := http.Get(u.String())

if err != nil {

log.Fatal(err)

return

}

result, err := ioutil.ReadAll(res.Body)

res.Body.Close()

if err != nil {

log.Fatal(err)

return

}

fmt.Printf("%s", result)

}

三 Global Server 定时器:

func TimeMsgNotice(conn *websocket.Conn, Conndata *rpc.Client) {

good_conn := conn

for {

select {

case

{

data := GetEmailDataFromDB(Conndata)

fmt.Println("GetEmailDataFromDB------:", data)

if len(data) > 0 {

iicounemail++

EmailNoticeFunc(good_conn)

}

// iicounmsg++

// MsgNoticeFuncbak(conn)

// EmailNoticeFunc(conn)

}

}

}

}

5487fa92ecbc7202faca1f6453464e70.png

日志打印

每天坚持学习1小时Go语言,大家加油,我是彬哥,下期见!如果文章中不同观点、意见请文章下留言或者关注下方订阅号反馈!

Golang语言社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值