U3D測試鏈接LollipopGo游戲服務(wù)器登錄服-2

原文地址:http://www.byteedu.com/forum.php?mod=viewthread&tid=565&page=1&extra=#pid799

一. 如何查找協(xié)議
Login_DT_http.go:

package main

import (
        _ "LollipopGo/LollipopGo/player"
        "Proto"
        "Proto/Proto2"
        "encoding/base64"
        "encoding/json"
        "fmt"
        "net/http"
        "net/rpc/jsonrpc"
        "strconv"
)

/*
  登錄服務(wù)器:
  http://127.0.0.1:8891/GolangLtdDT?Protocol=8&Protocol2=1
  47.107.125.75 == run.babaliuliu.com
*/

func IndexHandler(w http.ResponseWriter, req *http.Request) {

        if req.Method == "GET" {
                w.Header().Set("Access-Control-Allow-Origin", "*")
                req.ParseForm()
                defer func() { // 必須要先聲明defer电禀,否則不能捕獲到panic異常
                        if err := recover(); err != nil {
                                fmt.Println("%s", err)

                                req.Body.Close()
                        }
                }()
                Protocol, bProtocol := req.Form["Protocol"]
                Protocol2, bProtocol2 := req.Form["Protocol2"]

                if bProtocol && bProtocol2 {
                        // 主協(xié)議判斷
                        if Protocol[0] == strconv.Itoa(Proto.G_GameLogin_Proto) {
                                // 子協(xié)議判斷
                                switch Protocol2[0] {
                                case strconv.Itoa(Proto2.C2GL_GameLoginProto2):
                                        // DB server 獲取 驗證信息  rpc 操作
                                        //------------------------------------------------------
                                        // 暫時不解析用戶名和密碼 --> 后面獨立出來再增加<夥伞5暄拧!
                                        data := DB_rpc_()
                                        b, _ := json.Marshal(data)
                                        fmt.Fprint(w, base64.StdEncoding.EncodeToString(b))
                                        //------------------------------------------------------
                                        return
                                default:
                                        fmt.Fprintln(w, "88902")
                                        return
                                }
                        }
                        fmt.Fprintln(w, "88904")
                        return
                }
                // 服務(wù)器獲取通信方式錯誤 --> 8890 + 1
                fmt.Fprintln(w, "88901")
                return
        }
}

// jsonrpc 數(shù)據(jù)處理
func DB_rpc_() interface{} {
        // 鏈接DB操作
        client, err := jsonrpc.Dial("tcp", service)
        if err != nil {
                fmt.Println("dial error:", err)
        }
        args := Args{1, 2}
        var reply Proto2.GL2C_GameLogin
        // 同步調(diào)用
        // err = client.Call("Arith.Muliply", args, &reply)
        // if err != nil {
        //         fmt.Println("Arith.Muliply call error:", err)
        // }
        // 異步調(diào)用
        divCall := client.Go("Arith.Muliply", args, &reply, nil)
        replyCall := <-divCall.Done // will be equal to divCall
        fmt.Println(replyCall.Reply)
        // 返回的數(shù)據(jù)
        fmt.Println("the arith.mutiply is :", reply)
        return reply
}

image
image
image

協(xié)議字段:

package Proto2

import (
        "LollipopGo/LollipopGo/conf"
        "LollipopGo/LollipopGo/player"
)

// G_GameLogin_Proto 的子協(xié)議
// 屬于HTTP 與 DBserver 進行通信
// 獲取到登錄正確的信息后亥揖,token 返回給網(wǎng)關(guān)server
const (
        INIT_GameLogin       = iota
        C2GL_GameLoginProto2 // C2GL_GameLoginProto2 == 1      client -->登錄請求
        GL2C_GameLoginProto2 // GL2C_GameLoginProto2 == 2      返回數(shù)據(jù)
)

//------------------------------------------------------------------------------
// C2GL_GameLoginProto2
// 客戶端請求協(xié)議
type C2GL_GameLogin struct {
        Protocol  int    // 主協(xié)議
        Protocol2 int    // 子協(xié)議
        LoginName string // 登錄名字
        LoginPW   string // 登錄密碼
        Timestamp int    // 時間戳
}

// GL2C_GameLoginProto2
// 登錄服務(wù)器返回給客戶端協(xié)議
type GL2C_GameLogin struct {
        Protocol    int                          // 主協(xié)議
        Protocol2   int                          // 子協(xié)議
        Tocken      string                       // server 驗證加密數(shù)據(jù)
        PlayerST    *player.PlayerSt             // 玩家的結(jié)構(gòu)
        GateWayST   *player.GateWayList          // 大廳鏈接地址
        GameList    map[string]*conf.GameList    // 游戲列表
        GameListNew map[string]*conf.GameListNew // 游戲列表New
        BannerList  map[string]*conf.Banner      // 廣告列表
}

//------------------------------------------------------------------------------

同學們這下知道了怎么查找協(xié)議了吧费变!下節(jié)課我們就開始實際編碼了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挚歧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滑负,更是在濱河造成了極大的恐慌用含,老刑警劉巖帮匾,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瘟斜,死亡現(xiàn)場離奇詭異,居然都是意外死亡螺句,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門芽唇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佣蓉,“玉大人,你說我怎么就攤上這事∫逶” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵璧函,是天一觀的道長基显。 經(jīng)常有香客問我,道長库继,這世上最難降的妖魔是什么窜醉? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮拜英,結(jié)果婚禮上琅催,老公的妹妹穿的比我還像新娘虫给。我一直安慰自己侠碧,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布棋蚌。 她就那樣靜靜地躺著挨队,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盛垦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天颊埃,我揣著相機與錄音蝶俱,去河邊找鬼。 笑死罗标,一個胖子當著我的面吹牛积蜻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竿拆,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼丙笋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了不见?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缎谷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瑞你,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體希痴,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年虏缸,在試婚紗的時候發(fā)現(xiàn)自己被綠了嫩实。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡宰缤,死狀恐怖晃洒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氧骤,我是刑警寧澤桶略,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響姑蓝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旭愧,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一宙暇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧占贫,春花似錦、人聲如沸瞳收。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽界弧。三九已至,卻和暖如春垢箕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舰讹。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工月匣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锄开。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓萍悴,卻偏偏與公主長得像头遭,于是被迫代替她去往敵國和親癣诱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348