From 45d1ef3abd0408759ed89fbe2f7fdc90fb288db5 Mon Sep 17 00:00:00 2001 From: fumiama Date: Tue, 28 Dec 2021 12:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=A6=BB=20query=20&=20notify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gold/link/nat.go | 21 --------------------- gold/link/notify.go | 13 +++++++++++++ gold/link/query.go | 14 ++++++++++++++ 3 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 gold/link/notify.go create mode 100644 gold/link/query.go diff --git a/gold/link/nat.go b/gold/link/nat.go index 2302713..8058d59 100644 --- a/gold/link/nat.go +++ b/gold/link/nat.go @@ -22,24 +22,3 @@ func (l *Link) keepAlive() { logrus.Infoln("[link.nat] start to keep alive") } } - -// 收到询问包的处理函数 -func (l *Link) onQuery(packet *head.Packet) { - // TODO: 完成data解包与notify分发 - // 1. Data 解包 - // ---- 使用 head.Query 解释 packet.Data - // ---- 根据 Query 确定需要封装的 Notify - // 2. notify分发 - // ---- 封装 Notify 到 新的 packet.Data - // ---- 调用 l.Send 发送到对方 -} - -// 收到通告包的处理函数 -func (l *Link) onNotify(packet *head.Packet) { - // TODO: 完成data解包与endpoint注册 - // 1. Data 解包 - // ---- 使用 head.Notify 解释 packet.Data - // 2. endpoint注册 - // ---- 遍历 Notify,注册对方的 endpoint 到 - // ---- connections,注意使用读写锁connmapmu -} diff --git a/gold/link/notify.go b/gold/link/notify.go new file mode 100644 index 0000000..3b809b8 --- /dev/null +++ b/gold/link/notify.go @@ -0,0 +1,13 @@ +package link + +import "github.com/fumiama/WireGold/gold/head" + +// 收到通告包的处理函数 +func (l *Link) onNotify(packet *head.Packet) { + // TODO: 完成data解包与endpoint注册 + // 1. Data 解包 + // ---- 使用 head.Notify 解释 packet.Data + // 2. endpoint注册 + // ---- 遍历 Notify,注册对方的 endpoint 到 + // ---- connections,注意使用读写锁connmapmu +} diff --git a/gold/link/query.go b/gold/link/query.go new file mode 100644 index 0000000..62928d7 --- /dev/null +++ b/gold/link/query.go @@ -0,0 +1,14 @@ +package link + +import "github.com/fumiama/WireGold/gold/head" + +// 收到询问包的处理函数 +func (l *Link) onQuery(packet *head.Packet) { + // TODO: 完成data解包与notify分发 + // 1. Data 解包 + // ---- 使用 head.Query 解释 packet.Data + // ---- 根据 Query 确定需要封装的 Notify + // 2. notify分发 + // ---- 封装 Notify 到 新的 packet.Data + // ---- 调用 l.Send 发送到对方 +}