From 9119ebea26a3dbf6cf3c5a0bcd87b79c7f0d1cee Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期三, 26 八月 2020 11:02:38 +0800 Subject: [PATCH] add log --- library.go | 34 +++++++++++++++++++--------------- 1 files changed, 19 insertions(+), 15 deletions(-) diff --git a/library.go b/library.go index 9323982..489d2e9 100644 --- a/library.go +++ b/library.go @@ -44,7 +44,6 @@ ctx context.Context wg *sync.WaitGroup // 鍒涘缓channel瀵瑰簲鐨剅eply,绛夊緟璇诲彇鍏朵腑鐨勫唴瀹�,server - // 鍏朵腑蹇呴』鏈変竴涓綔涓篟equest鍑芥暟鐨剆erver m map[string]*sockServer // 鍒涘缓reply鏈嶅姟Request鍑芥暟 sockRep *sockServer @@ -55,13 +54,14 @@ // 鍙戦�佹湰韬殑pub淇℃伅,寰堝彲鑳藉叾浠栬繘绋嬩緷璧�,闇�瑕佸崟鐙瑂ocket澶勭悊 sockPub *sockClient // 鍒涘缓璁㈤槄鐨剆ocket - // 璁㈤槄鐨勪富棰樺彂閫佺殑娑堟伅 + // 璁㈤槄鐨勪富棰榩eer鍙戦�佺殑娑堟伅 sockSub *sockClient // 鍒涘缓涓�涓竾鑳絪ocket鍙戦�佺粰浠绘剰server sockWorker *sockClient // 澶氱嚎绋� mtxWorker sync.Mutex + // GetMessge瀹炵幇闇�瑕佺殑缂撳瓨 chSub chan TransInfo chReply chan TransInfo } @@ -71,6 +71,7 @@ routineReply = "reply" ) +// 璁㈤槄娑堟伅鎴杛eply鎺ユ敹鐨凴equest璇锋眰娑堟伅,閫氳繃缂撳瓨鐢ㄤ簬GetMessage鑾峰彇 func recvRoutine(ctx context.Context, sock *DgramSocket, wg *sync.WaitGroup, ch chan<- TransInfo, id string) { for { select { @@ -97,11 +98,11 @@ } } -// Register reg +// Register firstly register to manager func Register(ctx context.Context, info *RegisterInfo) *Handle { m := make(map[string]*sockServer) - // 棣栧厛璇锋眰涓�鍫唊ey + // 棣栧厛璇锋眰涓�鍫唊ey, 鍖呮嫭reply/sub/pub/topic/heartbeat sockReg := OpenDgramSocket() if sockReg == nil { return nil @@ -131,13 +132,14 @@ } } - // 寰楀埌key,璧嬪�� + // 寰楀埌key var regReply RegisterInfoReply if err := proto.Unmarshal(rdata, ®Reply); err != nil { return nil } // 鏀跺彂req/rep channel, server + // channels瀵瑰簲鐨剆erver,閮芥槸reply for _, v := range info.Channel { if k, ok := regReply.ChannelKey[v]; ok { s := OpenDgramSocket() @@ -151,15 +153,15 @@ wg := &sync.WaitGroup{} + // 鍒涘缓sub/reply鏈嶅姟缂撳瓨 chSize := 5 chSub := make(chan TransInfo, chSize) chReply := make(chan TransInfo, chSize) - // reply浣跨敤涓�涓�,鏈嶅姟Request, server + // reply server, 鏈嶅姟Request sockReply := OpenDgramSocket() sockReply.Bind(int(regReply.ReplyKey)) // 鍚姩鎺ユ敹绾跨▼ - wg.Add(1) go recvRoutine(ctx, sockReply, wg, chReply, routineReply) repS := &sockServer{ @@ -167,22 +169,24 @@ info: info.ProcInfo, } - // heartbeat浣跨敤涓�涓猻ocket, client + // heartbeat client, 鍗曠嫭浣跨敤涓�涓猻ocket鍙戦�佸績璺� sockHB := OpenDgramSocket() hbC := &sockClient{ sock: sockHB, peer: int(regReply.HeartbeatKey), } - // 鍙戝竷涓婚浣跨敤涓�涓�, client - sockUp := OpenDgramSocket() + + // pub client, 鍗曠嫭浣跨敤涓�涓彂甯冧富棰� + sockPub := OpenDgramSocket() pubC := &sockClient{ - sock: sockUp, + sock: sockPub, peer: int(regReply.UpdateTopicKey), } - // sub浣跨敤涓�涓猻ocket, client + + // sub client, 鍏辩敤涓�涓猻ocket sockSub := OpenDgramSocket() // sockSub.Bind(int(regReply.SubTopicKey)) - // 璁㈤槄涓婚 + // 璁㈤槄鎵�鏈変富棰� for _, v := range info.SubTopic { sockSub.Sub(v, int(regReply.SubTopicKey)) } @@ -194,7 +198,7 @@ peer: -1, } - // 涓囪兘socket,浠呬綔涓哄鎴风浣跨敤, 鎴栬�呰幏鍙杢opic key + // 涓囪兘socket,浠呬綔涓哄鎴风浣跨敤, 鎴栬�呰幏鍙杢opic key, 淇濆瓨topic鏈嶅姟鍣ㄧ殑key sockW := OpenDgramSocket() uniC := &sockClient{ sock: sockW, @@ -244,7 +248,7 @@ // GetTopicInfo get topic info func (h *Handle) GetTopicInfo(topic, typ string) int { - // 鎹涓嶆洿鏂�,鍏堢敤缂撳瓨,鍚﹀垯闇�瑕佹柊鍒涘缓涓�涓猻ocket,鏉ヤ粠manager璇锋眰key + // 鎹涓嶆洿鏂�,鍏堢敤缂撳瓨,鍚﹀垯浠巑anager璇锋眰key // ***k if v, ok := h.m[topic]; ok { return v.sock.Port() -- Gitblit v1.8.0