DashboardSocket class
A service to send and receive Protobuf messages over a UDP socket, using BurtSocket.
This class monitors its connection to the given device by sending heartbeats periodically and
logging the response (or lack thereof). To be notified of connection events, add a listener to connectionStatus.
To be notified of incoming messages, listen to the messages stream that streams incoming WrappedMessage.
To use this class:
- Call
initto open the socket. - Check connectionStrength or isConnected for the connection to the given
device. - To send a message, call
sendMessage. - Call
disposeto close the socket.
- Inheritance
-
- Object
- Service
- DashboardSocket
Constructors
- DashboardSocket({required Device device})
-
Listens for incoming messages on a UDP socket and sends heartbeats to the
device.
Properties
- collection ↔ Service?
-
The main service, or collection of services, of the program, if any.
getter/setter pairinherited
- connectionIncrement → double
-
How much each successful/missed handshake is worth, as a percent.
no setter
-
connectionStatus
→ ValueNotifier<
bool> -
Notifier for when the socket connects or disconnects
final
-
connectionStrength
→ ValueNotifier<
double> -
The connection strength, as a percentage to this
device.final - destination ↔ SocketInfo?
-
The destination port to send to.
getter/setter pairinherited
- device → Device
-
The device this socket will be used on.
finalinherited
- frequency → double
-
Number of times to check heart beat per seconds based on
models.settings.network.connectionTimeout.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
- heartbeatInterval → Duration
-
How often to check for new heartbeats.
no setter
- heartbeatWaitDelay → Duration
-
How long to wait for incoming heartbeats after sending them out.
no setter
- isConnected → bool
-
Whether this socket has a stable connection to the
device.no setter - keepDestination → bool
-
Whether or not the default destination should be kept when the socket is dispose.
finalinherited
- logger → BurtLogger
-
A logger to capture important events during operation.
finalinherited
-
messages
→ Stream<
WrappedMessage> -
A stream of WrappedMessages as they arrive in the UDP socket.
no setterinherited
- port → int?
-
The port this socket is listening on. See
RawDatagramSocket.bind.no setterinherited - quiet → bool
-
Whether to silence "normal" output, like opening/closing and resetting sockets.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
→ Stream<
Datagram> -
A stream containing all the data coming out of the socket.
no setterinherited
Methods
-
checkHeartbeats(
) → Future< void> - Sends or waits for heartbeats to or from the other device.
-
dispose(
) → Future< void> -
Closes the connection to the device.
inherited
-
init(
) → Future< bool> -
Initializes the connection to the device.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onConnect(
SocketInfo source) → void -
Sets
destinationto the incomingsource.inherited -
onDisconnect(
) → Future< void> -
Sends a Disconnect message to the dashboard and sets
destinationtonull.inherited -
onHeartbeat(
Connect heartbeat, SocketInfo source) → void - Handle an incoming heartbeat coming from a given source.
-
onSettings(
NetworkSettings settings) → Future< void> - Handle an incoming request to change network settings.
-
send(
List< int> data, {SocketInfo? destination}) → void -
Sends data to the given destination.
inherited
-
sendMessage(
Message message, {SocketInfo? destination}) → void -
Sends a Message over the socket (in a WrappedMessage).
inherited
-
sendWrapper(
WrappedMessage wrapper, {SocketInfo? destination}) → void -
Sends a WrappedMessage over the socket.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
tryHandshake<
T extends Message> ({required T message, required Duration timeout, required T constructor(List< int> bytes), SocketInfo? destination}) → Future<bool> -
A utility method to exchange a "handshake" to the destination
inherited
-
waitForConnection(
) → Future< void> -
Waits for a connection to be established.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited