pub enum NodeEvent {
Show 28 variants
PeerConnected {
peer_id: PeerId,
addr: TransportAddr,
method: TraversalMethod,
direct: bool,
},
PeerDisconnected {
peer_id: PeerId,
reason: DisconnectReason,
},
ConnectionFailed {
addr: SocketAddr,
error: String,
},
ExternalAddressDiscovered {
addr: TransportAddr,
},
PortMappingEstablished {
external_addr: SocketAddr,
},
PortMappingRenewed {
external_addr: SocketAddr,
},
PortMappingAddressChanged {
previous_addr: SocketAddr,
external_addr: SocketAddr,
},
PortMappingFailed {
error: String,
},
PortMappingRemoved {
external_addr: Option<SocketAddr>,
},
NatTypeDetected {
nat_type: NatType,
},
NatTraversalComplete {
peer_id: PeerId,
success: bool,
method: TraversalMethod,
},
DirectPathStatus {
peer_id: PeerId,
status: DirectPathStatus,
},
RelaySessionStarted {
peer_id: PeerId,
},
RelaySessionEnded {
peer_id: PeerId,
bytes_forwarded: u64,
},
CoordinationStarted {
peer_a: PeerId,
peer_b: PeerId,
},
CoordinationComplete {
peer_a: PeerId,
peer_b: PeerId,
success: bool,
},
MdnsServiceAdvertised {
service: String,
namespace: Option<String>,
instance_fullname: String,
},
MdnsPeerDiscovered {
peer: MdnsPeerRecord,
},
MdnsPeerUpdated {
peer: MdnsPeerRecord,
},
MdnsPeerRemoved {
peer: MdnsPeerRecord,
},
MdnsPeerEligible {
peer: MdnsPeerRecord,
},
MdnsPeerIneligible {
peer: MdnsPeerRecord,
reason: String,
},
MdnsPeerApprovalRequired {
peer: MdnsPeerRecord,
reason: String,
},
MdnsAutoConnectAttempted {
peer: MdnsPeerRecord,
addresses: Vec<SocketAddr>,
},
MdnsAutoConnectSucceeded {
peer: MdnsPeerRecord,
authenticated_peer_id: PeerId,
remote_addr: TransportAddr,
},
MdnsAutoConnectFailed {
peer: MdnsPeerRecord,
addresses: Vec<SocketAddr>,
error: String,
},
DataReceived {
peer_id: PeerId,
stream_id: u64,
bytes: usize,
},
DataSent {
peer_id: PeerId,
stream_id: u64,
bytes: usize,
},
}Expand description
Unified event type for all node activities
Subscribe to these events via node.subscribe() to monitor
all significant node activities in real-time.
Variants§
PeerConnected
A peer connected successfully
Fields
addr: TransportAddrThe peer’s address (supports all transport types)
method: TraversalMethodHow the connection was established.
PeerDisconnected
A peer disconnected
ConnectionFailed
Connection attempt failed
ExternalAddressDiscovered
External address discovered
This is the address as seen by other peers.
Fields
addr: TransportAddrThe discovered external address (supports all transport types)
PortMappingEstablished
Best-effort router port mapping was established.
Fields
external_addr: SocketAddrThe mapped external address.
PortMappingRenewed
Best-effort router port mapping was renewed.
Fields
external_addr: SocketAddrThe mapped external address.
PortMappingAddressChanged
Best-effort router port mapping changed to a different public address.
Fields
previous_addr: SocketAddrPrevious mapped public address.
external_addr: SocketAddrCurrent mapped public address.
PortMappingFailed
Best-effort router port mapping failed.
PortMappingRemoved
Best-effort router port mapping was removed or became inactive.
Fields
external_addr: Option<SocketAddr>The last mapped external address, when known.
NatTypeDetected
Best-effort NAT behavior hint updated.
Fields
NatTraversalComplete
NAT traversal completed
Fields
method: TraversalMethodConnection method used
DirectPathStatus
Best-effort direct-path status for a peer.
Fields
status: DirectPathStatusCurrent direct-path status.
RelaySessionStarted
Started relaying for a peer
RelaySessionEnded
Stopped relaying for a peer
Fields
CoordinationStarted
Started coordinating NAT traversal for peers
CoordinationComplete
NAT traversal coordination completed
Fields
MdnsServiceAdvertised
The local endpoint is advertising itself via first-party mDNS.
Fields
MdnsPeerDiscovered
A peer was discovered via first-party mDNS.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
MdnsPeerUpdated
A previously discovered mDNS peer was updated.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
MdnsPeerRemoved
A previously discovered mDNS peer was removed.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
MdnsPeerEligible
A discovered mDNS peer passed local eligibility checks.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
MdnsPeerIneligible
A discovered mDNS peer was rejected by local eligibility checks.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
MdnsPeerApprovalRequired
A discovered mDNS peer requires explicit approval before auto-connect.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
MdnsAutoConnectAttempted
An mDNS-driven auto-connect attempt was scheduled.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
addresses: Vec<SocketAddr>Candidate addresses routed through the unified connect path.
MdnsAutoConnectSucceeded
An mDNS-driven auto-connect attempt succeeded.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
remote_addr: TransportAddrConnected remote transport address.
MdnsAutoConnectFailed
An mDNS-driven auto-connect attempt failed.
Fields
peer: MdnsPeerRecordStructured mDNS discovery record.
addresses: Vec<SocketAddr>Candidate addresses routed through the unified connect path.
DataReceived
Data received from a peer
Fields
DataSent
Data sent to a peer
Implementations§
Source§impl NodeEvent
impl NodeEvent
Sourcepub fn is_connection_event(&self) -> bool
pub fn is_connection_event(&self) -> bool
Check if this is a connection event
Sourcepub fn is_nat_event(&self) -> bool
pub fn is_nat_event(&self) -> bool
Check if this is a NAT-related event
Sourcepub fn is_relay_event(&self) -> bool
pub fn is_relay_event(&self) -> bool
Check if this is a relay event
Sourcepub fn is_coordination_event(&self) -> bool
pub fn is_coordination_event(&self) -> bool
Check if this is a coordination event
Sourcepub fn is_data_event(&self) -> bool
pub fn is_data_event(&self) -> bool
Check if this is a data event