moonbit-community/rtc/ice does not have a README file
pub struct CandidatePair {
local_candidate : IceCandidate
remote_candidate : IceCandidate
priority : UInt64
state : CandidatePairState
nominated : Bool
} derive(Eq, Debug)pub struct IceAgent {
local_credentials : IceCredentials
remote_credentials : IceCredentials?
role : IceRole
tie_breaker : UInt64
local_candidates : Array[IceCandidate]
remote_candidates : Array[IceCandidate]
pairs : Array[CandidatePair]
transactions : Map[TransactionId, (Int, Bytes, TransportContext, Int, Int64, Instant)]
outputs : Queue[OutboundDatagram]
events : Queue[IceEvent]
state : IceConnectionState
selected_pair_index : Int?
next_check : Instant?
check_interval : Duration
initial_rto : Duration
reliable_timeout : Duration
max_retransmissions : Int
disconnected_timeout : Duration
failed_timeout : Duration
keepalive_interval : Duration
next_keepalive : Instant?
disconnected_deadline : Instant?
failed_deadline : Instant?
}fn IceAgent::add_local_candidate(self : IceAgent, candidate : IceCandidate, now? : Instant) -> Unit raise IceErrorfn IceAgent::add_remote_candidate(self : IceAgent, candidate : IceCandidate, now? : Instant) -> Unit raise IceErrorfn IceAgent::new(local_credentials~ : IceCredentials, role~ : IceRole, tie_breaker~ : UInt64, check_interval? : Duration, initial_rto? : Duration, reliable_timeout? : Duration, max_retransmissions? : Int, disconnected_timeout? : Duration, failed_timeout? : Duration, keepalive_interval? : Duration) -> IceAgent raise IceErrorfn IceAgent::set_remote_credentials(self : IceAgent, credentials : IceCredentials) -> Unit raise IceErrorpub struct IceCandidate {
foundation : String
component : UInt16
protocol : TransportProtocol
priority : UInt
address : CandidateAddress
port : UInt16
candidate_type : CandidateType
related_address : CandidateAddress?
related_port : UInt16?
tcp_type : TcpCandidateType?
extensions : Array[(String, String)]
} derive(Eq, Debug)fn IceCandidate::host(foundation~ : String, address : SocketAddress, local_preference? : UInt16) -> IceCandidate raise IceErrorfn IceCandidate::new(foundation~ : String, component~ : UInt16, protocol~ : TransportProtocol, priority~ : UInt, address~ : CandidateAddress, port~ : UInt16, candidate_type~ : CandidateType, related_address? : CandidateAddress, related_port? : UInt16, tcp_type? : TcpCandidateType, extensions? : Array[(String, String)]) -> IceCandidate raise IceErrorfn IceCandidate::priority_value(candidate_type~ : CandidateType, local_preference~ : UInt16, component~ : UInt16) -> UInt raise IceErrorfn IceCandidate::resolve_mdns(self : IceCandidate, address : IpAddress) -> IceCandidate raise IceErrorfn IceCandidate::tcp_host(foundation~ : String, address : SocketAddress, tcp_type~ : TcpCandidateType, local_preference? : UInt16) -> IceCandidate raise IceErrorfn IceCredentials::new(username_fragment~ : String, password~ : String) -> IceCredentials raise IceErrorpub(all) enum IceEvent {
ConnectionStateChanged(IceConnectionState)
RoleChanged(IceRole)
SelectedPair(CandidatePair)
ApplicationDatagram(InboundDatagram)
} derive(Eq, Debug)pub(all) enum SrflxEvent {
ServerReflexiveCandidate(IceCandidate)
SrflxStateChanged(SrflxGatheringState)
} derive(Eq, Debug)pub struct SrflxGatherer {
local_candidate : IceCandidate
server : SocketAddress
outputs : Queue[OutboundDatagram]
events : Queue[SrflxEvent]
state : SrflxGatheringState
transaction_id : TransactionId?
request : Bytes?
deadline : Instant?
rto_milliseconds : Int64
retransmissions : Int
}fn SrflxGatherer::handle_datagram(self : SrflxGatherer, datagram : InboundDatagram) -> Unit raise IceErrorfn SrflxGatherer::new(local_candidate~ : IceCandidate, server~ : SocketAddress) -> SrflxGatherer raise IceErrorInstall
Download zipExperimental Sans-I/O WebRTC stack for MoonBit
Dependencies