mirror of
https://github.com/wlynxg/NetHive.git
synced 2025-12-24 13:08:30 +08:00
refactor: 更换 mDNS 节点存储组件
This commit is contained in:
@@ -21,7 +21,6 @@ import (
|
||||
"github.com/libp2p/go-libp2p/p2p/discovery/mdns"
|
||||
"github.com/libp2p/go-libp2p/p2p/discovery/routing"
|
||||
"github.com/libp2p/go-libp2p/p2p/discovery/util"
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -44,7 +43,6 @@ type Engine struct {
|
||||
dht *dht.IpfsDHT
|
||||
discovery *routing.RoutingDiscovery
|
||||
mdns mdns.Service
|
||||
mdnsMap xsync.Map[peer.ID, []multiaddr.Multiaddr]
|
||||
|
||||
relayChan chan peer.AddrInfo
|
||||
|
||||
@@ -311,9 +309,9 @@ func (e *Engine) addConn(dst netip.Addr) (PacketChan, error) {
|
||||
ticker.Stop()
|
||||
return
|
||||
case <-ticker.C:
|
||||
info, ok := e.mdnsMap.Load(id)
|
||||
if ok && len(info) > 0 {
|
||||
peerInfo <- peer.AddrInfo{ID: id, Addrs: info}
|
||||
info := e.host.Peerstore().PeerInfo(id)
|
||||
if len(info.Addrs) > 0 {
|
||||
peerInfo <- info
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package engine
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/libp2p/go-libp2p/core/peer"
|
||||
)
|
||||
|
||||
func (e *Engine) HandlePeerFound(pi peer.AddrInfo) {
|
||||
e.log.Infof(e.ctx, "find %s by mDNS", pi)
|
||||
e.mdnsMap.Store(pi.ID, pi.Addrs)
|
||||
e.host.Peerstore().AddAddrs(peer.ID(pi.ID.String()), pi.Addrs, 5*time.Minute)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user