The Wireless Client as a Service framework provides a shared interface to connect a WiFi client to a wireless Access Point and then perform various tasks when connected. It can be used as a shared resource so multiple sources can queue up requests but it will only handle one transaction at a time.
- Scan for networks
- connect as a client
- Perform DNS lookups
- Perform HTTP operations
- Establish a connection to a wireless access point. There will be an enforced timeout for the transaction.
- Within the scope of a connection transaction you can perform various operations such as DNS lookups, HTTP request, etc.
- Client should respectfully disconnect when they are finished in the transaction, but if they do not the service will forecully terminate the transaction.
The Backend WiFi service is what monitors the connection store and takes action based on the stored model state.
Pending -> Connected -> Disconnecting -> Disconnected
If the WiFi service isn't acting on a connected connection, it grabs then next pending one from the connection store and marks it as connected.
When the service has a claimed connection in the connected state that means that it should be getting it associated with the wifi network, and willl then be processing actions for it.
If a connection a service is processing enters this state it means that a client has told us that they are finished and we can disconnect the connection and move on.
The service is finished with this connection. It can enter this state either through an Error in the connection transaction (such as a timeout), or the it had cleanly been disconnected via a request from the client.