Matter::Transport::UDPTransport
Inherits Reference < Object
UDP transport layer for Matter protocol
Handles:
- Sending and receiving Matter messages over UDP
- Message deduplication
- Automatic retransmission with exponential backoff
- Exchange management (request/response correlation)
Uses a single dual-stack IPv6 socket that accepts both IPv4 and IPv6 connections.
Constants
Log = ::Log.for("matter.transport.udp")
MATTER_PORT = 5540
Matter default port
Constructors
new(port : Int32 = MATTER_PORT)
SourceInstance methods
exchange_manager
Sourcemessage_counter
Sourceon_message
Callback for received messages Signature: (message : Codec::MessageCodec::Message, peer_address : Socket::IPAddress) -> Nil
on_message=(on_message : Proc(Codec::MessageCodec::Message, Socket::IPAddress, Nil) | Nil)
Callback for received messages Signature: (message : Codec::MessageCodec::Message, peer_address : Socket::IPAddress) -> Nil
port
Sourceprocess_retransmissions
Process retransmissions Should be called periodically (e.g., every 50ms)
send_message(message : Codec::MessageCodec::Message, peer_address : Socket::IPAddress, exchange : Exchange | Nil = nil) : Nil
Send a Matter message
send_raw(data : Bytes | Slice(UInt8), peer_address : Socket::IPAddress) : Nil
Send raw packet (for testing)
send_request(protocol_id : UInt16, message_type : UInt8, payload : Bytes | Slice(UInt8), session_id : UInt16, peer_address : Socket::IPAddress, peer_node_id : DataType::NodeId | Nil = nil, source_node_id : DataType::NodeId | Nil = nil, requires_ack : Bool = true) : Exchange
Create and send a message on a new exchange
socket
Source