Building upon traditional HTTP listener architectures, this section explores a highly optimized, directive-driven alternative within the DSAPI framework. This approach reduces development overhead by treating network exchanges as direct, short-string commands rather than full request-response cycles. For example, transmitting a specific keyword triggers an immediate, context-aware payload from the host. To guarantee data integrity across the network, the framework automatically applies Base64 encoding during transit. This serialization layer is deliberately abstracted, removing the need for manual encoding overhead.
Initializing the Command Server
Configuring a directive-based HTTP listener requires minimal boilerplate. The following snippet demonstrates how to instantiate the host, assign network parameters, and begin accepting inbound connections.
Private _directiveHost As New DSAPI.Networking.HttpCommandListener()
Sub SetupNetworkEndpoint()
With _directiveHost.Configuration
.PortNumber = 9090
.EnableQueryPrefix = False
.PermitPublicTraffic = True
End With
_directiveHost.StartListening()
End Sub
Once active, the host exposes several lifecycle and communication events that can be wired to custom handlers.
AddHandler _directiveHost.SocketBound, AddressOf OnEndpointActive
AddHandler _directiveHost.SocketClosed, AddressOf OnEndpointInactive
AddHandler _directiveHost.DirectiveReceived, AddressOf ProcessIncomingCommand
AddHandler _directiveHost.FaultDetected, AddressOf LogRuntimeException
Private Sub OnEndpointActive()
' Network socket is bound and ready
End Sub
Private Sub OnEndpointInactive()
' All active sessions have been terminated
End Sub
Private Sub LogRuntimeException(exception As Exception)
' Implement custom error recovery or diagnostics
End Sub
Processing Incoming Directives
When a remote node transmits a command, the framework routes the payload directly to the designated event handler. The received string can be evaluated using standard control flow statements, and the response can be formatted as either plain text or a binary stream.
Private Sub ProcessIncomingCommand(session As DSAPI.Networking.HttpCommandSession, payload As String) Handles _directiveHost.DirectiveReceived
Dim responseObject As Object
Select Case payload.Trim().ToLower()
Case "ack"
responseObject = "Channel verified"
Case "retrieve"
responseObject = IO.File.ReadAllBytes("C:\assets\payload.bin")
Case Else
responseObject = "Unrecognized operation"
End Select
_directiveHost.RouteToClient(session, responseObject)
End Sub
The server-side implementation is now complete. The next step envolves configuring the requesting endpoint.
Configuring the Remote Client
The client component mirrors the host's simplicity. It requires only a target address, an endpoint port, and a configurable timeout threshold.
Private _remoteConnector As New DSAPI.Networking.HttpCommandClient()
Sub InitializeClientSettings()
_remoteConnector.RequestTimeoutMs = 2000
_remoteConnector.TargetHostname = "192.168.1.100"
_remoteConnector.TargetPort = 9090
End Sub
Executing Requests and Retrieving Payloads
Interacting with the host is reduced to a single method call. The framework handles the underlying socket management, serialization, and response parsing automatically.
Dim serverResponse As String = _remoteConnector.SubmitCommand("ack")
Console.WriteLine($"Received: {serverResponse}")
This synchronous, one-liner approach eliminates the complexity typically associated with HTTP stream handling, making it ideal for lightweight inter-process communication and rapid service prototyping.