IpSuperTcpClientChannel
Overview
The IpSuperTcpClientChannel class implements the client side of the sophisticated and flexible TCP based communication channel that uses persistent connections to enable true asynchronous calls and server callbacks. This TCP channel is useful for scenarios where extensive use of events and server callbacks is needed.
Location
- Reference: RemObjects.SDK.dll
- Namespace: RemObjects.SDK
- Ancestry: Component | Channel | ClientChannel | IpSuperTcpClientChannel
constructor
Creates a new instance of the IpSuperTcpClientChannel class.
constructor
IpSuperTcpClientChannel()
Sub New()
constructor (IContainer)
Creates a new instance of the IpSuperTcpClientChannel class and addi it to the provided components container.
constructor(container: IContainer)
IpSuperTcpClientChannel(IContainer container)
Sub New(container As IContainer)
Parameters:
- container: Components container
AckWaitTimeout
Defines the timeout, in milliseconds, in which an "acknowledgement" message is expected to be received for a sent request (default is 10,000, 10 seconds).
If no acknowledgement has been received after the specified time, delivery will be considered to have failed.
property AckWaitTimeout: Int32 read write;
Int32 AckWaitTimeout { get; set; }
Property AckWaitTimeout() As Int32
Activate protected
method Activate
void Activate()
Sub Activate()
Active
Determines if is the channel currently active, i.e. has an open connection to the server, or is in the process of (re-)establishing a connection (true) or not (false).
property Active: Boolean read write;
Boolean Active { get; set; }
Property Active() As Boolean
AfterReceiveStream (declared in Channel)
This event is triggered by client and server channels directly after a request or response stream has been received and before the stream gets parsed into a message. User code can assign handlers to this event to process, inspect or modify incoming messages, before they get handled by the Remoting SDK framework. The passed Stream is a MemoryStream and may be modified.
If no handlers are assigned to the AfterReceiveStream event, the message will load the data directly from the incoming medium (usually the network stream); assigning event handlers to AfterReceiveStream will induce a slight overhead as the data will first be copied into a local memory buffer for the event handler. This should not have any noticeably effect except for very large messages or on resource-limited systems such as Compact Framework Clients, but if utmost performance is important, take this note into consideration.
event AfterReceiveStream: EventHandler<StreamEventArgs>;
delegate EventHandler<StreamEventArgs> AfterReceiveStream()
Event AfterReceiveStream As EventHandler<StreamEventArgs>
AsyncDispatch (declared in ClientChannel)
method AsyncDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult AsyncDispatch(IMessage message, AsyncCallback callback, Object userData)
Function AsyncDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
AutoReconnect
Determines if the channel should automatically re-establish a connection to the server when the current connection is lost (true) or not (false, default).
Set this property to true if your client needs a constant connection to the server, for example to receive callback events or asynchronous responses.
property AutoReconnect: Boolean read write;
Boolean AutoReconnect { get; set; }
Property AutoReconnect() As Boolean
BeforeDispatch protected
This method ensures that the channel is active and connected before dispatching message.
protected
method BeforeDispatch(message: IMessage)
void BeforeDispatch(IMessage message)
Sub BeforeDispatch(message As IMessage)
Parameters:
- message:
BeforeSendStream (declared in Channel)
This event is triggered by client and server channels directly before a request or response stream will be sent over the network. User code can assign handlers to this event to process, inspect or modify incoming messages before they get sent out to the remote system.
The passed Stream is a MemoryStream and may be modified.
event BeforeSendStream: EventHandler<StreamEventArgs>;
delegate EventHandler<StreamEventArgs> BeforeSendStream()
Event BeforeSendStream As EventHandler<StreamEventArgs>
BeginDispatch (IMessage, AsyncCallback, Boolean, Object): IClientAsyncResult protected
method BeginDispatch(message: IMessage; callback: AsyncCallback; disposeChannel: Boolean; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Boolean disposeChannel, Object userData)
Function BeginDispatch(message As IMessage, callback As AsyncCallback, disposeChannel As Boolean, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- disposeChannel:
- userData:
BeginDispatch (IMessage, AsyncCallback, Object): IClientAsyncResult (declared in ClientChannel)
method BeginDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Object userData)
Function BeginDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
BuildTargetUri protected (declared in ClientChannel)
class method BuildTargetUri(protocol: String; host: String; port: Int32; message: String): Uri
static Uri BuildTargetUri(String protocol, String host, Int32 port, String message)
Shared Function BuildTargetUri(protocol As String, host As String, port As Int32, message As String) As Uri
Parameters:
- protocol:
- host:
- port:
- message:
ChannelMatchingTargetUri (String): IClientChannel (declared in ClientChannel)
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: String): IClientChannel
static IClientChannel ChannelMatchingTargetUri(String uri)
Shared Function ChannelMatchingTargetUri(uri As String) As IClientChannel
Parameters:
- uri: Server Uri
ChannelMatchingTargetUri (Uri): IClientChannel (declared in ClientChannel)
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: Uri): IClientChannel
static IClientChannel ChannelMatchingTargetUri(Uri uri)
Shared Function ChannelMatchingTargetUri(uri As Uri) As IClientChannel
Parameters:
- uri: Server Uri
CheckChannelStatus protected
method CheckChannelStatus
void CheckChannelStatus()
Sub CheckChannelStatus()
ClientID
property ClientID: Guid read write;
Guid ClientID { get; set; }
Property ClientID() As Guid
Clone
method Clone: Object
Object Clone()
Function Clone() As Object
Connected
property Connected: Boolean read;
Boolean Connected { get; }
ReadOnly Property Connected() As Boolean
ConnectTimeout
The timeout, in milliseconds, after which the client channel will abort trying to connect to the server. This ensures that for unresponsive servers, the client will not hang indefinitely when trying to connect.
The default value is 10000 (i.e. 10 seconds).
property ConnectTimeout: Int32 read write;
Int32 ConnectTimeout { get; set; }
Property ConnectTimeout() As Int32
method CopyProperties(source: Channel)
void CopyProperties(Channel source)
Sub CopyProperties(source As Channel)
Parameters:
- source:
CopyProperties (ClientChannel) protected
protected
method CopyProperties(source: ClientChannel)
void CopyProperties(ClientChannel source)
Sub CopyProperties(source As ClientChannel)
Parameters:
- source:
Deactivate protected
method Deactivate
void Deactivate()
Sub Deactivate()
Dispatch (declared in ClientChannel)
The implementation of IClientChannel.Dispatch. This method ensures the transport is not busy before calling IntDispatch and passing the given IMessage. If the transport is busy, a ChannelBusyException is thrown.
method Dispatch(message: IMessage)
void Dispatch(IMessage message)
Sub Dispatch(message As IMessage)
Parameters:
- message:
Dispose protected
method Dispose(disposing: Boolean)
void Dispose(Boolean disposing)
Sub Dispose(disposing As Boolean)
Parameters:
- disposing:
EndDispatch (declared in ClientChannel)
method EndDispatch(ar: IAsyncResult): IMessage
IMessage EndDispatch(IAsyncResult ar)
Function EndDispatch(ar As IAsyncResult) As IMessage
Parameters:
- ar:
EventThreadPool
property EventThreadPool: IThreadPool read write;
IThreadPool EventThreadPool { get; set; }
Property EventThreadPool() As IThreadPool
HasAfterReceiveStream protected (declared in Channel)
property HasAfterReceiveStream: Boolean read;
Boolean HasAfterReceiveStream { get; }
ReadOnly Property HasAfterReceiveStream() As Boolean
HasBeforeSendStream protected (declared in Channel)
property HasBeforeSendStream: Boolean read;
Boolean HasBeforeSendStream { get; }
ReadOnly Property HasBeforeSendStream() As Boolean
HasOnTransferProgress protected (declared in ClientChannel)
property HasOnTransferProgress: Boolean read;
Boolean HasOnTransferProgress { get; }
ReadOnly Property HasOnTransferProgress() As Boolean
Hostname
Host name of the server.
The default value is "localhost".
property Hostname: String read write;
String Hostname { get; set; }
Property Hostname() As String
IdleTimeoutMinutes
If the client channel was in idle state longer than specified in this property, it will disconnect from the server.
The default value is 0 minutes (i.e. never disconnect).
property IdleTimeoutMinutes: Int32 read write;
Int32 IdleTimeoutMinutes { get; set; }
Property IdleTimeoutMinutes() As Int32
IncomingData protected
Enqueues an incoming package to the event thread pool.
internal protected
method IncomingData(package: SuperTcpPackage)
void IncomingData(SuperTcpPackage package)
Sub IncomingData(package As SuperTcpPackage)
Parameters:
- package:
Initializing protected
property Initializing: Boolean read;
Boolean Initializing { get; }
ReadOnly Property Initializing() As Boolean
IntDispatch protected
Transmits the request stream to the server for processing and eventually gets a response stream back.
protected
method IntDispatch(request: Stream; response: IMessage)
void IntDispatch(Stream request, IMessage response)
Sub IntDispatch(request As Stream, response As IMessage)
Parameters:
- request:
- response:
IsBusy (declared in ClientChannel)
property IsBusy: Boolean read;
Boolean IsBusy { get; }
ReadOnly Property IsBusy() As Boolean
MaxPackageSize
The maximum size of data package that the channel can send (default is 1048576, 1MB).
property MaxPackageSize: Int32 read write;
Int32 MaxPackageSize { get; set; }
Property MaxPackageSize() As Int32
OnConnected
Fires when an active TCP connection to the server has been (re-)established.
event OnConnected: EventHandler;
delegate EventHandler OnConnected()
Event OnConnected As EventHandler
OnDisconnected
Fires when the active TCP connection to the server has been dropped or lost.
event OnDisconnected: EventHandler;
delegate EventHandler OnDisconnected()
Event OnDisconnected As EventHandler
OnException (declared in ClientChannel)
This event is raised if an exception occurs during the execution of a remote request through the channel. The event will be raised both for exceptions originating from the server and for exceptions during communication (such as unavailability of the server). Attach a handler to this event to do custom handling of events without having to reply on explicit try/catch blocks in the calling code.
This event will not be raised for SessionNotFoundExceptions. These will be handled separately by the OnLoginNeeded event.
event OnException: EventHandler<RequestExceptionEventArgs>;
delegate EventHandler<RequestExceptionEventArgs> OnException()
Event OnException As EventHandler<RequestExceptionEventArgs>
OnLoginNeeded (declared in ClientChannel)
This event is raised if an SessionNotFoundException occurs during the execution of a remote request through the channel. The event gives you the opportunity to perform a login on the server (for example by calling a custom Login method, and then retry the call by setting the EventArgs' LoginSuccessful property to true. This way, your client can recover from a timed-out session to automatically logging in again, without the calling code having to consider the handling of SessionNotFoundExceptions manually.
event OnLoginNeeded: EventHandler<LoginNeededEventArgs>;
delegate EventHandler<LoginNeededEventArgs> OnLoginNeeded()
Event OnLoginNeeded As EventHandler<LoginNeededEventArgs>
OnTransferEnd (declared in ClientChannel)
This event is triggered by the client channel after a transfer is completed (either the sending of a request or the receiving of a response).
event OnTransferEnd: EventHandler<TransferEndEventArgs>;
delegate EventHandler<TransferEndEventArgs> OnTransferEnd()
Event OnTransferEnd As EventHandler<TransferEndEventArgs>
OnTransferProgress (declared in ClientChannel)
This event is triggered by the client channel during a transfer (either the sending of a request or the receiving of a response) whenever a new block of data has been sent or received.
event OnTransferProgress: EventHandler<TransferProgressEventArgs>;
delegate EventHandler<TransferProgressEventArgs> OnTransferProgress()
Event OnTransferProgress As EventHandler<TransferProgressEventArgs>
OnTransferStart (declared in ClientChannel)
This event is triggered by the client channel when a transfer (either the sending of a request or the receiving of a response) is about to be started.
event OnTransferStart: EventHandler<TransferStartEventArgs>;
delegate EventHandler<TransferStartEventArgs> OnTransferStart()
Event OnTransferStart As EventHandler<TransferStartEventArgs>
Port
The network socket the server will be listening to (default for the Remoting SDK Super TCP servers is 8095).
property Port: Int32 read write;
Int32 Port { get; set; }
Property Port() As Int32
ReconnectTimeout
The timeout, in milliseconds, after which the client channel will try to reconnect.
The default value is 500 (i.e. 0.5 second).
property ReconnectTimeout: Int32 read write;
Int32 ReconnectTimeout { get; set; }
Property ReconnectTimeout() As Int32
RegisterEventReceiver
method RegisterEventReceiver(receiver: IEventReceiver)
void RegisterEventReceiver(IEventReceiver receiver)
Sub RegisterEventReceiver(receiver As IEventReceiver)
Parameters:
- receiver:
RequestTimeout
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 60000 (i.e. 1 minute).
property RequestTimeout: Int32 read write;
Int32 RequestTimeout { get; set; }
Property RequestTimeout() As Int32
SkipAck
property SkipAck: Boolean read write;
Boolean SkipAck { get; set; }
Property SkipAck() As Boolean
SslOptions
property SslOptions: SslConnectionFactory read;
SslConnectionFactory SslOptions { get; }
ReadOnly Property SslOptions() As SslConnectionFactory
TargetUri
property TargetUri: Uri read write;
Uri TargetUri { get; set; }
Property TargetUri() As Uri
TargetUrl (declared in ClientChannel)
property TargetUrl: String read write;
String TargetUrl { get; set; }
Property TargetUrl() As String
TcpClient
Provides access to the underlying TcpClient component that will be used for communication with the server.
property TcpClient: TcpClient read;
TcpClient TcpClient { get; }
ReadOnly Property TcpClient() As TcpClient
TriggerAfterReceiveStream protected (declared in Channel)
method TriggerAfterReceiveStream(var stream: Stream)
void TriggerAfterReceiveStream(ref Stream stream)
Sub TriggerAfterReceiveStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerBeforeSendStream protected (declared in Channel)
method TriggerBeforeSendStream(var stream: Stream)
void TriggerBeforeSendStream(ref Stream stream)
Sub TriggerBeforeSendStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerConnected protected
method TriggerConnected
void TriggerConnected()
Sub TriggerConnected()
TriggerDisconnected protected
method TriggerDisconnected
void TriggerDisconnected()
Sub TriggerDisconnected()
TriggerOnException protected (declared in ClientChannel)
method TriggerOnException(exception: Exception; out handled: Boolean)
void TriggerOnException(Exception exception, out Boolean handled)
Sub TriggerOnException(exception As Exception, <OutAttribute> ByRef handled As Boolean)
Parameters:
- exception:
- handled:
TriggerOnLoginNeeded protected (declared in ClientChannel)
method TriggerOnLoginNeeded(exception: Exception; out loginSuccessful: Boolean)
void TriggerOnLoginNeeded(Exception exception, out Boolean loginSuccessful)
Sub TriggerOnLoginNeeded(exception As Exception, <OutAttribute> ByRef loginSuccessful As Boolean)
Parameters:
- exception:
- loginSuccessful:
TriggerOnTransferEnd protected (declared in ClientChannel)
method TriggerOnTransferEnd(direction: TransferDirection)
void TriggerOnTransferEnd(TransferDirection direction)
Sub TriggerOnTransferEnd(direction As TransferDirection)
Parameters:
- direction:
TriggerOnTransferProgress protected (declared in ClientChannel)
method TriggerOnTransferProgress(direction: TransferDirection; current: Int64)
void TriggerOnTransferProgress(TransferDirection direction, Int64 current)
Sub TriggerOnTransferProgress(direction As TransferDirection, current As Int64)
Parameters:
- direction:
- current:
TriggerOnTransferStart protected (declared in ClientChannel)
method TriggerOnTransferStart(direction: TransferDirection; total: Int64)
void TriggerOnTransferStart(TransferDirection direction, Int64 total)
Sub TriggerOnTransferStart(direction As TransferDirection, total As Int64)
Parameters:
- direction:
- total:
UnregisterEventReceiver
method UnregisterEventReceiver(receiver: IEventReceiver)
void UnregisterEventReceiver(IEventReceiver receiver)
Sub UnregisterEventReceiver(receiver As IEventReceiver)
Parameters:
- receiver:
UseEventThreadPool
Gets or sets a flag indicating whenther the server events callbacks wiil be executed using a separate thread pool (when set to true) or immediately in the same thread (when set to false).
Note: It is strongly suggested to leave value of this property as ture. Otherwise (ie when event callbacks are to be executed in the same thread as the channel code) please ensure that the event callbacks do not block the channel thread's execution for any significant amunt of time.
The default value is true.
property UseEventThreadPool: Boolean read write;
Boolean UseEventThreadPool { get; set; }
Property UseEventThreadPool() As Boolean
AckWaitTimeout
Defines the timeout, in milliseconds, in which an "acknowledgement" message is expected to be received for a sent request (default is 10,000, 10 seconds).
If no acknowledgement has been received after the specified time, delivery will be considered to have failed.
property AckWaitTimeout: Int32 read write;
Int32 AckWaitTimeout { get; set; }
Property AckWaitTimeout() As Int32
Active
Determines if is the channel currently active, i.e. has an open connection to the server, or is in the process of (re-)establishing a connection (true) or not (false).
property Active: Boolean read write;
Boolean Active { get; set; }
Property Active() As Boolean
AutoReconnect
Determines if the channel should automatically re-establish a connection to the server when the current connection is lost (true) or not (false, default).
Set this property to true if your client needs a constant connection to the server, for example to receive callback events or asynchronous responses.
property AutoReconnect: Boolean read write;
Boolean AutoReconnect { get; set; }
Property AutoReconnect() As Boolean
ClientID
property ClientID: Guid read write;
Guid ClientID { get; set; }
Property ClientID() As Guid
Connected
property Connected: Boolean read;
Boolean Connected { get; }
ReadOnly Property Connected() As Boolean
ConnectTimeout
The timeout, in milliseconds, after which the client channel will abort trying to connect to the server. This ensures that for unresponsive servers, the client will not hang indefinitely when trying to connect.
The default value is 10000 (i.e. 10 seconds).
property ConnectTimeout: Int32 read write;
Int32 ConnectTimeout { get; set; }
Property ConnectTimeout() As Int32
EventThreadPool
property EventThreadPool: IThreadPool read write;
IThreadPool EventThreadPool { get; set; }
Property EventThreadPool() As IThreadPool
HasAfterReceiveStream protected (declared in Channel)
property HasAfterReceiveStream: Boolean read;
Boolean HasAfterReceiveStream { get; }
ReadOnly Property HasAfterReceiveStream() As Boolean
HasBeforeSendStream protected (declared in Channel)
property HasBeforeSendStream: Boolean read;
Boolean HasBeforeSendStream { get; }
ReadOnly Property HasBeforeSendStream() As Boolean
HasOnTransferProgress protected (declared in ClientChannel)
property HasOnTransferProgress: Boolean read;
Boolean HasOnTransferProgress { get; }
ReadOnly Property HasOnTransferProgress() As Boolean
Hostname
Host name of the server.
The default value is "localhost".
property Hostname: String read write;
String Hostname { get; set; }
Property Hostname() As String
IdleTimeoutMinutes
If the client channel was in idle state longer than specified in this property, it will disconnect from the server.
The default value is 0 minutes (i.e. never disconnect).
property IdleTimeoutMinutes: Int32 read write;
Int32 IdleTimeoutMinutes { get; set; }
Property IdleTimeoutMinutes() As Int32
Initializing protected
property Initializing: Boolean read;
Boolean Initializing { get; }
ReadOnly Property Initializing() As Boolean
IsBusy (declared in ClientChannel)
property IsBusy: Boolean read;
Boolean IsBusy { get; }
ReadOnly Property IsBusy() As Boolean
MaxPackageSize
The maximum size of data package that the channel can send (default is 1048576, 1MB).
property MaxPackageSize: Int32 read write;
Int32 MaxPackageSize { get; set; }
Property MaxPackageSize() As Int32
Port
The network socket the server will be listening to (default for the Remoting SDK Super TCP servers is 8095).
property Port: Int32 read write;
Int32 Port { get; set; }
Property Port() As Int32
ReconnectTimeout
The timeout, in milliseconds, after which the client channel will try to reconnect.
The default value is 500 (i.e. 0.5 second).
property ReconnectTimeout: Int32 read write;
Int32 ReconnectTimeout { get; set; }
Property ReconnectTimeout() As Int32
RequestTimeout
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 60000 (i.e. 1 minute).
property RequestTimeout: Int32 read write;
Int32 RequestTimeout { get; set; }
Property RequestTimeout() As Int32
SkipAck
property SkipAck: Boolean read write;
Boolean SkipAck { get; set; }
Property SkipAck() As Boolean
SslOptions
property SslOptions: SslConnectionFactory read;
SslConnectionFactory SslOptions { get; }
ReadOnly Property SslOptions() As SslConnectionFactory
TargetUri
property TargetUri: Uri read write;
Uri TargetUri { get; set; }
Property TargetUri() As Uri
TargetUrl (declared in ClientChannel)
property TargetUrl: String read write;
String TargetUrl { get; set; }
Property TargetUrl() As String
TcpClient
Provides access to the underlying TcpClient component that will be used for communication with the server.
property TcpClient: TcpClient read;
TcpClient TcpClient { get; }
ReadOnly Property TcpClient() As TcpClient
UseEventThreadPool
Gets or sets a flag indicating whenther the server events callbacks wiil be executed using a separate thread pool (when set to true) or immediately in the same thread (when set to false).
Note: It is strongly suggested to leave value of this property as ture. Otherwise (ie when event callbacks are to be executed in the same thread as the channel code) please ensure that the event callbacks do not block the channel thread's execution for any significant amunt of time.
The default value is true.
property UseEventThreadPool: Boolean read write;
Boolean UseEventThreadPool { get; set; }
Property UseEventThreadPool() As Boolean
BuildTargetUri protected (declared in ClientChannel)
class method BuildTargetUri(protocol: String; host: String; port: Int32; message: String): Uri
static Uri BuildTargetUri(String protocol, String host, Int32 port, String message)
Shared Function BuildTargetUri(protocol As String, host As String, port As Int32, message As String) As Uri
Parameters:
- protocol:
- host:
- port:
- message:
ChannelMatchingTargetUri (String): IClientChannel (declared in ClientChannel)
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: String): IClientChannel
static IClientChannel ChannelMatchingTargetUri(String uri)
Shared Function ChannelMatchingTargetUri(uri As String) As IClientChannel
Parameters:
- uri: Server Uri
ChannelMatchingTargetUri (Uri): IClientChannel (declared in ClientChannel)
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: Uri): IClientChannel
static IClientChannel ChannelMatchingTargetUri(Uri uri)
Shared Function ChannelMatchingTargetUri(uri As Uri) As IClientChannel
Parameters:
- uri: Server Uri
constructor
Creates a new instance of the IpSuperTcpClientChannel class.
constructor
IpSuperTcpClientChannel()
Sub New()
constructor (IContainer)
Creates a new instance of the IpSuperTcpClientChannel class and addi it to the provided components container.
constructor(container: IContainer)
IpSuperTcpClientChannel(IContainer container)
Sub New(container As IContainer)
Parameters:
- container: Components container
Activate protected
method Activate
void Activate()
Sub Activate()
AsyncDispatch (declared in ClientChannel)
method AsyncDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult AsyncDispatch(IMessage message, AsyncCallback callback, Object userData)
Function AsyncDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
BeforeDispatch protected
This method ensures that the channel is active and connected before dispatching message.
protected
method BeforeDispatch(message: IMessage)
void BeforeDispatch(IMessage message)
Sub BeforeDispatch(message As IMessage)
Parameters:
- message:
BeginDispatch (IMessage, AsyncCallback, Boolean, Object): IClientAsyncResult protected
method BeginDispatch(message: IMessage; callback: AsyncCallback; disposeChannel: Boolean; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Boolean disposeChannel, Object userData)
Function BeginDispatch(message As IMessage, callback As AsyncCallback, disposeChannel As Boolean, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- disposeChannel:
- userData:
BeginDispatch (IMessage, AsyncCallback, Object): IClientAsyncResult (declared in ClientChannel)
method BeginDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Object userData)
Function BeginDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
CheckChannelStatus protected
method CheckChannelStatus
void CheckChannelStatus()
Sub CheckChannelStatus()
Clone
method Clone: Object
Object Clone()
Function Clone() As Object
method CopyProperties(source: Channel)
void CopyProperties(Channel source)
Sub CopyProperties(source As Channel)
Parameters:
- source:
CopyProperties (ClientChannel) protected
protected
method CopyProperties(source: ClientChannel)
void CopyProperties(ClientChannel source)
Sub CopyProperties(source As ClientChannel)
Parameters:
- source:
Deactivate protected
method Deactivate
void Deactivate()
Sub Deactivate()
Dispatch (declared in ClientChannel)
The implementation of IClientChannel.Dispatch. This method ensures the transport is not busy before calling IntDispatch and passing the given IMessage. If the transport is busy, a ChannelBusyException is thrown.
method Dispatch(message: IMessage)
void Dispatch(IMessage message)
Sub Dispatch(message As IMessage)
Parameters:
- message:
Dispose protected
method Dispose(disposing: Boolean)
void Dispose(Boolean disposing)
Sub Dispose(disposing As Boolean)
Parameters:
- disposing:
EndDispatch (declared in ClientChannel)
method EndDispatch(ar: IAsyncResult): IMessage
IMessage EndDispatch(IAsyncResult ar)
Function EndDispatch(ar As IAsyncResult) As IMessage
Parameters:
- ar:
IncomingData protected
Enqueues an incoming package to the event thread pool.
internal protected
method IncomingData(package: SuperTcpPackage)
void IncomingData(SuperTcpPackage package)
Sub IncomingData(package As SuperTcpPackage)
Parameters:
- package:
IntDispatch protected
Transmits the request stream to the server for processing and eventually gets a response stream back.
protected
method IntDispatch(request: Stream; response: IMessage)
void IntDispatch(Stream request, IMessage response)
Sub IntDispatch(request As Stream, response As IMessage)
Parameters:
- request:
- response:
RegisterEventReceiver
method RegisterEventReceiver(receiver: IEventReceiver)
void RegisterEventReceiver(IEventReceiver receiver)
Sub RegisterEventReceiver(receiver As IEventReceiver)
Parameters:
- receiver:
TriggerAfterReceiveStream protected (declared in Channel)
method TriggerAfterReceiveStream(var stream: Stream)
void TriggerAfterReceiveStream(ref Stream stream)
Sub TriggerAfterReceiveStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerBeforeSendStream protected (declared in Channel)
method TriggerBeforeSendStream(var stream: Stream)
void TriggerBeforeSendStream(ref Stream stream)
Sub TriggerBeforeSendStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerConnected protected
method TriggerConnected
void TriggerConnected()
Sub TriggerConnected()
TriggerDisconnected protected
method TriggerDisconnected
void TriggerDisconnected()
Sub TriggerDisconnected()
TriggerOnException protected (declared in ClientChannel)
method TriggerOnException(exception: Exception; out handled: Boolean)
void TriggerOnException(Exception exception, out Boolean handled)
Sub TriggerOnException(exception As Exception, <OutAttribute> ByRef handled As Boolean)
Parameters:
- exception:
- handled:
TriggerOnLoginNeeded protected (declared in ClientChannel)
method TriggerOnLoginNeeded(exception: Exception; out loginSuccessful: Boolean)
void TriggerOnLoginNeeded(Exception exception, out Boolean loginSuccessful)
Sub TriggerOnLoginNeeded(exception As Exception, <OutAttribute> ByRef loginSuccessful As Boolean)
Parameters:
- exception:
- loginSuccessful:
TriggerOnTransferEnd protected (declared in ClientChannel)
method TriggerOnTransferEnd(direction: TransferDirection)
void TriggerOnTransferEnd(TransferDirection direction)
Sub TriggerOnTransferEnd(direction As TransferDirection)
Parameters:
- direction:
TriggerOnTransferProgress protected (declared in ClientChannel)
method TriggerOnTransferProgress(direction: TransferDirection; current: Int64)
void TriggerOnTransferProgress(TransferDirection direction, Int64 current)
Sub TriggerOnTransferProgress(direction As TransferDirection, current As Int64)
Parameters:
- direction:
- current:
TriggerOnTransferStart protected (declared in ClientChannel)
method TriggerOnTransferStart(direction: TransferDirection; total: Int64)
void TriggerOnTransferStart(TransferDirection direction, Int64 total)
Sub TriggerOnTransferStart(direction As TransferDirection, total As Int64)
Parameters:
- direction:
- total:
UnregisterEventReceiver
method UnregisterEventReceiver(receiver: IEventReceiver)
void UnregisterEventReceiver(IEventReceiver receiver)
Sub UnregisterEventReceiver(receiver As IEventReceiver)
Parameters:
- receiver:
AfterReceiveStream (declared in Channel)
This event is triggered by client and server channels directly after a request or response stream has been received and before the stream gets parsed into a message. User code can assign handlers to this event to process, inspect or modify incoming messages, before they get handled by the Remoting SDK framework. The passed Stream is a MemoryStream and may be modified.
If no handlers are assigned to the AfterReceiveStream event, the message will load the data directly from the incoming medium (usually the network stream); assigning event handlers to AfterReceiveStream will induce a slight overhead as the data will first be copied into a local memory buffer for the event handler. This should not have any noticeably effect except for very large messages or on resource-limited systems such as Compact Framework Clients, but if utmost performance is important, take this note into consideration.
event AfterReceiveStream: EventHandler<StreamEventArgs>;
delegate EventHandler<StreamEventArgs> AfterReceiveStream()
Event AfterReceiveStream As EventHandler<StreamEventArgs>
BeforeSendStream (declared in Channel)
This event is triggered by client and server channels directly before a request or response stream will be sent over the network. User code can assign handlers to this event to process, inspect or modify incoming messages before they get sent out to the remote system.
The passed Stream is a MemoryStream and may be modified.
event BeforeSendStream: EventHandler<StreamEventArgs>;
delegate EventHandler<StreamEventArgs> BeforeSendStream()
Event BeforeSendStream As EventHandler<StreamEventArgs>
OnConnected
Fires when an active TCP connection to the server has been (re-)established.
event OnConnected: EventHandler;
delegate EventHandler OnConnected()
Event OnConnected As EventHandler
OnDisconnected
Fires when the active TCP connection to the server has been dropped or lost.
event OnDisconnected: EventHandler;
delegate EventHandler OnDisconnected()
Event OnDisconnected As EventHandler
OnException (declared in ClientChannel)
This event is raised if an exception occurs during the execution of a remote request through the channel. The event will be raised both for exceptions originating from the server and for exceptions during communication (such as unavailability of the server). Attach a handler to this event to do custom handling of events without having to reply on explicit try/catch blocks in the calling code.
This event will not be raised for SessionNotFoundExceptions. These will be handled separately by the OnLoginNeeded event.
event OnException: EventHandler<RequestExceptionEventArgs>;
delegate EventHandler<RequestExceptionEventArgs> OnException()
Event OnException As EventHandler<RequestExceptionEventArgs>
OnLoginNeeded (declared in ClientChannel)
This event is raised if an SessionNotFoundException occurs during the execution of a remote request through the channel. The event gives you the opportunity to perform a login on the server (for example by calling a custom Login method, and then retry the call by setting the EventArgs' LoginSuccessful property to true. This way, your client can recover from a timed-out session to automatically logging in again, without the calling code having to consider the handling of SessionNotFoundExceptions manually.
event OnLoginNeeded: EventHandler<LoginNeededEventArgs>;
delegate EventHandler<LoginNeededEventArgs> OnLoginNeeded()
Event OnLoginNeeded As EventHandler<LoginNeededEventArgs>
OnTransferEnd (declared in ClientChannel)
This event is triggered by the client channel after a transfer is completed (either the sending of a request or the receiving of a response).
event OnTransferEnd: EventHandler<TransferEndEventArgs>;
delegate EventHandler<TransferEndEventArgs> OnTransferEnd()
Event OnTransferEnd As EventHandler<TransferEndEventArgs>
OnTransferProgress (declared in ClientChannel)
This event is triggered by the client channel during a transfer (either the sending of a request or the receiving of a response) whenever a new block of data has been sent or received.
event OnTransferProgress: EventHandler<TransferProgressEventArgs>;
delegate EventHandler<TransferProgressEventArgs> OnTransferProgress()
Event OnTransferProgress As EventHandler<TransferProgressEventArgs>
OnTransferStart (declared in ClientChannel)
This event is triggered by the client channel when a transfer (either the sending of a request or the receiving of a response) is about to be started.
event OnTransferStart: EventHandler<TransferStartEventArgs>;
delegate EventHandler<TransferStartEventArgs> OnTransferStart()
Event OnTransferStart As EventHandler<TransferStartEventArgs>