TROIndySuperHTTPChannel Class

This is a Library topic for RemObjects SDK for Delphi
This page is generated from external data, please do not update
Interfaces — Classes — Enums — Aliases — Implements
Contents |
Overview
The Super HTTP Channel implements the enhanced HTTP based channel which provides a sophisticated and flexible communication channel which uses persistent connections to enable true asynchronous calls and server callbacks.
The channel is based on the open source Indy components that ship with Delphi.
Location
uROIndySuperHttpChannel.pas
- Ancestry: TComponent | TROComponent | TROBaseConnection | TROTransportChannel | TROBaseActiveEventChannel | TROBaseSuperChannel | TROBaseSuperHTTPChannel | TROIndySuperHTTPChannel
Properties
| Active (declared in TROBaseSuperChannel) |
|---|
|
Allows to get channel's activity state, whether the channel active i.e. attempts to connect or already connected. Allows to activate and deactivate the channel.
|
| AllowGzipEncoding (declared in TROBaseSuperHTTPChannel) |
|
Allows to use GZIP compression
|
| AutoReconnect protected (declared in TROBaseSuperChannel) |
|
Specifies whether to use auto reconnect feature if the specified server is not available.
|
| AutoReconnectBehavior protected (declared in TROBaseSuperChannel) |
|
Controls the auto-reconnect behavior, if enabled. For possible auto-reconnect modes see TROSCAutoReconnectBehavior enum.
|
| Busy (declared in TROTransportChannel) |
|
Informs whether the channel is currently busy executing a remote request (true) or not (false). Most channels (except most notably the TROSuperTCPChannel) are only capable of performing one request at a time; if a second request is attempted while the channel is Busy, an EROChannelBusy exception will be raised.
|
| ClientId protected (declared in TROBaseSuperChannel) |
|
The unique identifier of the client and it's session on the server. See TROMessage description for more details. The property is assigned automatically during the process of data exchange between the client and the server.
|
| ClientRequest |
|
Provides direct access to the underlying Indy implementation. You can use this property to control advanced settings on the Indy object. The available properties and settings depend on the version of Indy you are using.
|
| ClientWait |
|
Provides direct access to the underlying Indy implementation. You can use this property to control advanced settings on the Indy object. The available properties and settings depend on the version of Indy you are using.
|
| Connected (declared in TROBaseSuperChannel) |
|
Returns true if the channel is connected to the server.
|
| ConnectionId (declared in TROBaseSuperHTTPChannel) |
|
Identifies a connection to this client on the server. Note that the value of this property does not necessarily correspond with the session ID on the server side.
|
| ConnectionWaitTimeout protected (declared in TROBaseSuperChannel) |
|
The timeout to establish connection to the server. Expressed in milliseconds, the default value is 10000 (10 sec).
|
| ConnectTimeout (declared in TROBaseSuperChannel) |
|
The same as above.
|
| CurrentLocator (declared in TROTransportChannel) |
|
Returns which of the fail-over/load balancing servers configured in the ServerLocators is currently active. Depending on the DispatchOptions defined, this value might change with each request, or only if the current server fails.
|
| DisableNagle (declared in TROBaseSuperHTTPChannel) |
|
Controls whether data packets are sent individually or if small packets are held back to send as part of fewer larger data packets. Normally, you will want this disabled as it can have a significant effect on performance. The only time when its worth keeping the property enabled is when there are many small packets to be sent and you need to keep network bandwidth to a minimum. See more at wikipedia.org
|
| DispatchOptions (declared in TROBaseSuperChannel) |
|
Configures the available fail-over and load balancing options provided by the RemObjects SDK. By default, channels are set up to talk to one specific server only. Two independent options are available to provide fail-over and load balancing:
Enabling any of these options obviously requires the server to be implemented in a stateless way, so that it does not depend on all requests from a client going to the same server. This implies using a class factory different from Per-Client and, if sessions are used, a session manager that allows sharing of session state between servers.
|
| Encryption obsolete (declared in TROBaseConnection) |
|
This is DES based enscryption, it is obsolete because works only for Delphi. Use message envelope AES Encryption Envelope instead.
|
| EventReceiverList protected (declared in TROBaseActiveEventChannel) |
|
Provides a list of registered IROEventReceiver
|
| EventThreadPool (declared in TROBaseSuperChannel) |
|
Refers to the TROThreadPool instance to provide a thread pool to execute event handling routines on. If the thread pool is not set explicitly it is created autromatically upon access.
|
| FaultToleranceLocatorIdx (declared in TROTransportChannel) |
|
|
| HTTPRequestTimeout (declared in TROBaseSuperHTTPChannel) |
|
The timeout, in milliseconds, after which the client channel will abort the request. This ensures that for unresponsive servers, the client will not hang indefinitely waiting for a reply. The default value is 10000 (milliseconds, i.e. 10 seconds).
|
| isProbeMode protected (declared in TROTransportChannel) |
|
Returns True if channel is used for probing purposes
|
| LoadBalancerLocatorIdx (declared in TROTransportChannel) |
|
|
| MaxPackageSize (declared in TROBaseSuperChannel) |
|
The maximum size of the message in bytes that can be transferred through the channel.
|
| MinSizeForGzipEncoding (declared in TROBaseSuperHTTPChannel) |
|
The maximum size for data packages that the channel can send (default is 10MB).
|
| NeedDecodeResponse protected (declared in TROBaseSuperHTTPChannel) |
|
Specifies that server response should be decoded
|
| OnAfterProbingServer (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnAfterProbingServers (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnBeforeProbingServer (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnBeforeProbingServers (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnConnected (declared in TROBaseSuperHTTPChannel) |
|
Fires when channel is connected to server
|
| OnLoginNeeded (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnProgress (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnReceiveStream (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnSendStream (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| OnServerLocatorAssignment (declared in TROBaseSuperChannel) |
|
Inherited from the TROTransportChannel class.
|
| ProbeFrequency (declared in TROBaseSuperChannel) |
|
Sets at what intervals, in milliseconds, the channel will probe the servers configured in ServerLocators for availability. The default value is 60,000 (60 seconds). See the ProbeServers property for a more detailed description. Although somewhat misnamed, this property defines the Interval between probes, not the actual probing Frequency. The property name is persisted for backward compatibility.
|
| ProbeServers (declared in TROBaseSuperChannel) |
|
Toggles whether the channel will continuously probe the servers configured in ServerLocators for availability. If enabled (true), the channel will ping all servers at a regular interval to determine if they are reachable. If a server fails to respond, it will be disabled for future calls until a later probe can reach it again. The interval between probes can be configured using the ProbeFrequency property. By default, server probing is turned off.
|
| ReconnectDelay protected (declared in TROBaseSuperChannel) |
|
The time interval to pass between reconnect attempts, in millisecnds. The default is 500 (0.5 second).
|
| RequestTimeout (declared in TROBaseSuperChannel) |
|
The timeout to complete the remote request on the server. Expressed in milliseconds, the default value is 60000 (60 sec). All requests that last longer than the timeout specified are considered failed.
|
| ServerAcceptEncodingModes protected (declared in TROBaseSuperHTTPChannel) |
|
This event fires as the channel is transferring data for a request or response to or from the server, informing of the current progress. It can be used to keep the user interface updated during lengthy transfers, e.g. by showing a progress bar or the remaining transfer volume. Note: The accuracy and frequency of calls to OnProgress depends on the channel type; since channels transport data packets in different sized chunks (or even all-at-once), OnProgress might show a very fine progress for some channels, while jumping from 0 to 100% in one step with others.
|
| ServerLocators (declared in TROBaseSuperChannel) |
|
Optionally, this collection property can be filled to contain a list of possible servers to be used for fail-over or load balancing purposes. Depending on the settings configured in DispatchOptions, the channel will automatically spread calls over the available servers, or fall back to another server if one fails.
|
| SessionId (declared in TROBaseSuperHTTPChannel) |
|
GUID that uniquely identifies each client and allows the server to determine which calls are received from the same client. This property is used for Session Management.
|
| StoreActive (declared in TROBaseSuperChannel) |
|
Controls whether the Active property value is stored in the dfm file.
|
| SynchronizedProbing (declared in TROBaseSuperChannel) |
|
Determines whether server probing happens in the context of the main VCL thread (true, default) or in a background worker thread. See the ProbeServers property for a more detailed description.
|
| SynchronizeEvents (declared in TROBaseSuperChannel) |
|
According to the superchannel nature every remote request is processed using it's own background thread. This property controls on which thread to execute the event handlers for events connected with each remote request. If the property is set to true than all event handlers are executed on the main application thread, otherwise they are executed on the request's background thread.
|
| TargetUri (declared in TROTransportChannel) |
|
|
| TargetUrl (declared in TROBaseSuperChannel) |
|
|
| ThreadSafe protected (declared in TROTransportChannel) |
|
|
| WaitingRequests protected (declared in TROBaseSuperChannel) |
|
Internal storage of remote requests awaiting for response.
|
| WorkerThread protected (declared in TROBaseSuperChannel) |
|
Internal background threads management property.
|
Class Methods
| ChannelMatchingTargetUri (declared in TROTransportChannel) |
|---|
|
|
| ChannelMatchingTargetUrl (declared in TROTransportChannel) |
|
|
Instance Methods
| constructor Create override |
|---|
|
Creates a new instance.
|
| destructor Destroy override |
|
The standard destructor.
|
| Assign override (declared in TROBaseSuperHTTPChannel) |
|
Copies the contents of another, similar object.
|
| AsyncException protected virtual (declared in TROTransportChannel) |
|
Notifies about an exception in an asynchronous mode.
|
| BeforeDispatch protected override (declared in TROBaseSuperChannel) |
|
Allows an implimentation to do necessary preparatory actions (checking the readiness of the channel, restore session data, etc.).
|
| CalcRequestStreamSize protected (declared in TROBaseSuperHTTPChannel) |
|
Calculates size of incoming package.
|
| CallbackEvents protected (declared in TROBaseActiveEventChannel) |
|
Sends event to each registered IROEventReceiver
|
| CancelRequest protected override |
|
Cancels the specified request to stop the threads when overridden.
|
| ChangeServerLocator protected override (declared in TROBaseSuperChannel) |
|
|
| CheckProperties virtual (declared in TROTransportChannel) |
|
Validates channel properties
|
| CheckStatus protected (declared in TROBaseSuperChannel) |
|
|
| CreateWorkerThread protected override (declared in TROBaseSuperHTTPChannel) |
|
|
| DecodeEventStream protected (declared in TROTransportChannel) |
|
Decrypts the stream.
|
| Dispatch (IROMessage) protected reintroduce overload (declared in TROTransportChannel) |
|
Sends a request message through the Self channel for processing and gets back an aMessage. CodeGen uses this method when generating a proxy from RODL Files.
|
| DispatchHTTPRequest protected override |
|
Dispatches the HTTP request to the server and gets the response when overridden.
|
| DoAfterEncryptEvent protected virtual obsolete (declared in TROBaseConnection) |
|
|
| DoAfterProbingServerEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnAfterProbingServer event
|
| DoAfterProbingServersEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnAfterProbingServers event
|
| DoBeforeDecryptEvent protected virtual obsolete (declared in TROBaseConnection) |
|
|
| DoBeforeProbingServerEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnBeforeProbingServer event
|
| DoBeforeProbingServersEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnBeforeProbingServers event
|
| DoConnectedEvent protected virtual (declared in TROBaseSuperChannel) |
|
|
| DoConnectedEvent_Synch protected (declared in TROBaseSuperChannel) |
|
|
| DoDecodeStream protected (declared in TROBaseSuperHTTPChannel) |
|
Performs GZIP decoding
|
| DoDecryption virtual obsolete (declared in TROBaseConnection) |
|
|
| DoDecryption2 obsolete (declared in TROBaseConnection) |
|
|
| DoDisconnect protected override (declared in TROBaseSuperHTTPChannel) |
|
|
| DoDisconnectedEvent protected virtual (declared in TROBaseSuperChannel) |
|
|
| DoDisconnectedEvent_Synch protected (declared in TROBaseSuperChannel) |
|
|
| DoEncodeStream protected (declared in TROBaseSuperHTTPChannel) |
|
Performs GZIP encoding
|
| DoEncryption virtual obsolete (declared in TROBaseConnection) |
|
|
| DoEncryption2 obsolete (declared in TROBaseConnection) |
|
|
| DoException protected virtual (declared in TROTransportChannel) |
|
Fires OnException event
|
| DoInitialConnect protected override (declared in TROBaseSuperHTTPChannel) |
|
|
| DoInvalidClientIDEvent protected virtual (declared in TROBaseSuperHTTPChannel) |
|
Calls OnInvalidClientID event
|
| DoLoginNeeded protected virtual (declared in TROTransportChannel) |
|
Fires OnLoginNeeded event
|
| DoProcessError protected (declared in TROBaseSuperChannel) |
|
|
| DoReceiveStreamEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnReceiveStream event
|
| DoReconnect protected (declared in TROBaseSuperChannel) |
|
|
| DoSendStreamEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnSendStream event
|
| DoServerLocatorAssignmentEvent protected override (declared in TROBaseSuperChannel) |
|
Fires OnServerLocatorAssignment event
|
| FindWaitingRequest protected (declared in TROBaseSuperChannel) |
|
|
| GetCanUseContentEncoding protected (declared in TROBaseSuperHTTPChannel) |
|
Gets CanUseContentEncoding value.
|
| GetClientAddress protected override |
|
Returns an IP address of a client.
|
| GetConnected protected virtual (declared in TROBaseSuperChannel) |
|
|
| GetContentType protected override |
|
Returns the Content-Type header in the client's request when overridden.
|
| GetHeaders protected override |
|
Returns the header with the specified name in the client's request when overridden.
|
| GetLocation protected override |
|
Returns the host URL with the prefix 'http' when overridden.
|
| GetMaxPackageSize protected virtual (declared in TROBaseSuperChannel) |
|
|
| GetPathInfo protected override |
|
Returns the virtual path to the specified service when overridden.
|
| GetQueryParameter protected override |
|
Returns the request query parameter with the specified name when overridden.
|
| GetQueryString protected override |
|
When overridden, this method returns the corresponding part of the HTTP query string.
|
| GetStrippedTargetUrl protected virtual (declared in TROBaseSuperChannel) |
|
|
| GetTransportObject protected override (declared in TROBaseSuperChannel) |
|
Returns itself.
|
| GetUserAgent protected override |
|
Returns the User-Agent header value of the current request when overridden.
|
| HasData protected (declared in TROBaseSuperChannel) |
|
|
| InDestroyingState protected (declared in TROBaseSuperChannel) |
|
|
| InitialConnect protected (declared in TROBaseSuperChannel) |
|
|
| InitServerLocator protected override (declared in TROBaseSuperChannel) |
|
Sets CurrentLocator
|
| InitWorkerThread protected (declared in TROBaseSuperChannel) |
|
|
| InvokeRequest (TStream, boolean): string protected overload (declared in TROBaseSuperChannel) |
|
|
| InvokeRequest (TStream, boolean, TROEvent): string protected override (declared in TROBaseSuperHTTPChannel) |
|
Invokes the specified client's request and returns a server response based on this client's request. If aGetResponse is true, the current request will be added to the collection of waiting requests.
|
| IsEncryptionUsed protected (declared in TROTransportChannel) |
|
Specifies current Encryption status
|
| Notification protected override (declared in TROBaseSuperChannel) |
|
Forwards notification messages to all owned components.
|
| Probe protected (declared in TROTransportChannel) |
|
Checks the accessibility of servers from the ServerLocators. This method is intended to provide fail-over and load balancing support in the RemObjects SDK Architecture.
|
| ProbeAll protected (declared in TROTransportChannel) |
|
Checks the availability of all known servers.
|
| ProcessEvent protected (declared in TROBaseSuperChannel) |
|
|
| RegisterEventReceiver protected virtual (declared in TROBaseActiveEventChannel) |
|
Adds IROEventReceiver to the EventReceiverList
|
| ResetProbingClone protected override (declared in TROBaseSuperChannel) |
|
Resets channel that is used for probing
|
| RetrieveMetadata protected virtual (declared in TROTransportChannel) |
|
Retrieves metadata from server
|
| RetrieveResponse protected (declared in TROBaseSuperChannel) |
|
|
| RetrieveRODL protected (declared in TROTransportChannel) |
|
This method is used for to obtaining the RODL library from the server without havin to rely on a channel-specific mechanism (such as a HTTP request to http://servername:port/rodl).
|
| ROFreeNotification (declared in TROComponent) |
|
Forwards notification messages to all owned RO components.
|
| RORemoveFreeNotification (declared in TROComponent) |
|
Disables destruction notification for specified RO component.
|
| SendRemoveNotification protected (declared in TROComponent) |
|
Sends remove notification to specified component
|
| SetCanUseContentEncoding protected (declared in TROBaseSuperHTTPChannel) |
|
Sets CanUseContentEncoding value.
|
| SetConnectedState protected (declared in TROBaseSuperChannel) |
|
|
| SetContentType protected override |
|
Sets the Content-Type header in the current client's request when overridden.
|
| SetHeaders (Boolean, string, string) protected override |
|
Sets the new value of the client's header with the specified value when overridden.
|
| SetHeaders (string, string) protected override |
|
Sets the new value of the client's header with the specified value when overridden.
|
| SetInactive protected (declared in TROBaseSuperChannel) |
|
|
| SetMaxPackageSize protected virtual (declared in TROBaseSuperChannel) |
|
|
| SetPathInfo protected override |
|
Sets a virtual path to the specified service when overridden.
|
| SetServerLocator protected (declared in TROTransportChannel) |
|
Retrieves the location details of a server from aServerLocator.
|
| SetUserAgent protected override |
|
Sets the new value of the User-Agent header of the current request when overridden.
|
| SocketConnectedRequest protected |
|
|
| SocketConnectedWait protected |
|
|
| SuperChannel_RaiseError protected override (declared in TROBaseSuperHTTPChannel) |
|
|
| TerminateWorkerThread protected (declared in TROBaseSuperChannel) |
|
|
| TriggerProgress protected override (declared in TROBaseSuperChannel) |
|
Fires OnProgress event
|
| UnregisterEventReceiver protected virtual (declared in TROBaseActiveEventChannel) |
|
Removed IROEventReceiver from EventReceiverList
|
| UnregisterEventReceivers protected (declared in TROBaseActiveEventChannel) |
|
Removes all items from EventReceiverList
|
| WaitForActive (declared in TROBaseSuperChannel) |
|
|
Events
| ConnectEvent (declared in TROBaseSuperChannel) |
|---|
|
|
| onAfterEncrypt obsolete (declared in TROBaseConnection) |
|
|
| OnAfterProbingServer (declared in TROTransportChannel) |
|
Fires after the channel is done probing a specific server for availability. You can use this event to check the result of the probing, possibly to update internal data structures or to display server status in the user interface.
|
| OnAfterProbingServers (declared in TROTransportChannel) |
|
Fires after the channel is done probing all servers for availability. You can use this event to check the result of the probing, possibly to update internal data structures or to display server status in the user interface.
|
| OnAsyncException (declared in TROTransportChannel) |
|
Fires when exception is raised in asynchronous mode
|
| onBeforeDecrypt obsolete (declared in TROBaseConnection) |
|
|
| OnBeforeProbingServer (declared in TROTransportChannel) |
|
Fires before the channel starts probing a specific server for availability. You can use this event to:
|
| OnBeforeProbingServers (declared in TROTransportChannel) |
|
Fires before the channel starts probing all servers for availability. You can use this event:
|
| OnConnected (declared in TROBaseSuperChannel) |
|
|
| OnDisconnected (declared in TROBaseSuperChannel) |
|
|
| OnException (declared in TROTransportChannel) |
|
Fires if an exception is raised during the execution of a remote request. This could be an exception returned from the server, a communication problem or an error within the client. Depending on the type of error, your event handler can try to rectify the problem, and set aRetry to true to have the channel try and perform the request again. For example, an application could show a dialog asking the user to confirm if his internet connection is available, with Cancel and Retry buttons. If aRetry is set to true and the call succeeds at the second attempt, the call will return to the original code that initiated the request, as if the exception never happened.
|
| OnInvalidClientID (declared in TROBaseSuperHTTPChannel) |
|
Fires when the server returns a response with error code for an unregistered connection with the client.
|
| OnLoginNeeded (declared in TROTransportChannel) |
|
Fires if an EROSessionNotFound (or the descendant SessionNotFoundException) exception is raised during the execution of a remote request. This usually indicates that the server cannot authenticate the client or that the session has expired. The most common use for this event is to perform a call to a special Login service provided by the server (possibly after prompting the user to enter username and password), and to set the aRetry parameter to true if login was successful.
|
| OnProgress (declared in TROTransportChannel) |
|
This event fires as the channel is transferring data for a request or response to or from the server, informing of the current progress. It can be used to keep the user interface updated during lengthy transfers,e.g. by showing a progress bar or the remaining transfer volume. Note: the accuracy and frequency of calls to OnProgress depends on the channel type; since channels transport data packets in different sized chunks (or even all-at-once), OnProgress might show a very fine progress for some channels, while jumping from 0 to 100% in one step with others.
|
| OnReceiveStream (declared in TROTransportChannel) |
|
Fires after a stream with a response message has been received from the server. Use this event handler to inspect and possibly modify the stream, before it continues to be processed by the higher levels of the RemObjects SDK framework.
|
| OnSendStream (declared in TROTransportChannel) |
|
Fires just as a stream with a request message will be sent to the server. The event handler can inspect and possibly modify the stream, before it continues to be sent off to the server.
|
| OnServerLocatorAssignment (declared in TROTransportChannel) |
|
Fires before changing of a server locator
|
| ReconnectEvent (declared in TROBaseSuperChannel) |
|
|
See Also
- Channels
- Lists
- RemObjects SDK for Delphi: Interfaces — Classes — Enums — Aliases — Implements
- RemObjects SDK shared: Data Types – File Types
- other editions
- RemObjects SDK for .NET: Namespaces — Interfaces — Classes — Enums — Implements
- RemObjects SDK for Xcode: Protocols — Classes — Enums — Aliases — Implements
- RemObjects SDK for Java: Namespaces — Interfaces — Classes — Enums — Implements
- RemObjects SDK for JavaScript: Objects

Product: RemObjects SDK
Available Editions: RemObjects SDK for .NET, Xcode, Delphi, Java and JavaScript