HttpServer

Overview

HttpServer is the foundation for writing custom HTTP Servers.

Location

 

constructor

 

constructor

 

HttpServer()

 

Sub New()

constructor (IContainer)

 

constructor(container: IContainer)

 

HttpServer(IContainer container)

 

Sub New(container As IContainer)

Parameters:

  • container:

Active    (declared in Server)

Gets or sets the flag defining whether the server is listening for incoming connections.

Setting this property to true or false calls the Open or Close methods, accordingly

 

property Active: Boolean read write;

 

Boolean Active { get; set; }

 

Property Active() As Boolean

BindAddressV4    (declared in Server)

 

property BindAddressV4: IPAddress read write;

 

IPAddress BindAddressV4 { get; set; }

 

Property BindAddressV4() As IPAddress

BindAddressV6    (declared in Server)

 

property BindAddressV6: IPAddress read write;

 

IPAddress BindAddressV6 { get; set; }

 

Property BindAddressV6() As IPAddress

BindingV4    (declared in Server)

Gets the IPv4 ServerBinding instance.

The returned instance can be used to fine-tune the IPv4 server endpoint.

 

property BindingV4: ServerBinding read;

 

ServerBinding BindingV4 { get; }

 

ReadOnly Property BindingV4() As ServerBinding

BindingV6    (declared in Server)

Gets the IPv6 ServerBinding instance.

The returned instance can be used to fine-tune the IPv6 server endpoint.

 

property BindingV6: ServerBinding read;

 

ServerBinding BindingV6 { get; }

 

ReadOnly Property BindingV6() As ServerBinding

BindV4    (declared in Server)

Gets or sets the flag indicating whether the server should listen for IPv4 connections.

Setting this flag doesn't have any immediate effect. Its value is used only when the server is opened (either by setting the Active property to true or by directly calling the Open method).

 

property BindV4: Boolean read write;

 

Boolean BindV4 { get; set; }

 

Property BindV4() As Boolean

BindV6    (declared in Server)

Gets or sets the flag indicating whether the server should listen for IPv6 connections.

Setting this flag doesn't have any immediate effect. Its value is used only when the server is opened (either by setting the Active property to true or by directly calling the Open method).

 

property BindV6: Boolean read write;

 

Boolean BindV6 { get; set; }

 

Property BindV6() As Boolean

Close    (declared in Server)

This method causes the server to stop listening for incoming connections.

 

method Close

 

void Close()

 

Sub Close()

CloseConnectionsOnShutdown    (declared in Server)

Gets or sets the flag indicating whether the currently open client connections should be appropriately closed on server shutdown.

The default value is true.

 

property CloseConnectionsOnShutdown: Boolean read write;

 

Boolean CloseConnectionsOnShutdown { get; set; }

 

Property CloseConnectionsOnShutdown() As Boolean

ConnectionClass    (declared in Server)

Gets or sets an alternative Connection class to be used for incoming data connections. The class described by the assigned Type must be a descendant of the Connection class, and will be used for all connections that are established after the property has been set.

Existing connections are not affected by changing the property.

If the ConnectionType property value is null (default), instances of the Connection base class will be used.

 

property ConnectionClass: Type read write;

 

Type ConnectionClass { get; set; }

 

Property ConnectionClass() As Type

ConnectionFactory    (declared in Server)

Gets or sets an alternative Connection factory instance to be used for incoming data connections. This factory will be used to create corresponding Connection instances for all connections that are established after the property has been set.

Existing connections are not affected by changing the property.

This property has precendence over the ConnectionClass property.

 

property ConnectionFactory: IConnectionFactory read write;

 

IConnectionFactory ConnectionFactory { get; set; }

 

Property ConnectionFactory() As IConnectionFactory

CreateWorker  protected

 

method CreateWorker(owner: Server): Object

 

Object CreateWorker(Server owner)

 

Function CreateWorker(owner As Server) As Object

Parameters:

  • owner:

DefaultPort  protected    (declared in Server)

Gets or sets the default port number.

 

property DefaultPort: Int32 read write;

 

Int32 DefaultPort { get; set; }

 

Property DefaultPort() As Int32

Dispose  protected    (declared in Server)

Disposes of the current instance and releases all resources used by it.

 

method Dispose(disposing: Boolean)

 

void Dispose(Boolean disposing)

 

Sub Dispose(disposing As Boolean)

Parameters:

  • disposing:

EnableNagle    (declared in Server)

Gets or the sets flag indicating whether the Nagle's algoritm should be used.

Setting this flag doesn't have any immediate effect. Its value is used only when the server is opened (either by setting the Active property to true or by directly calling the Open method).

 

property EnableNagle: Boolean read write;

 

Boolean EnableNagle { get; set; }

 

Property EnableNagle() As Boolean

HandleHttpRequest  protected

 

method HandleHttpRequest(connection: Connection; request: HttpServerRequest; response: HttpServerResponse)

 

void HandleHttpRequest(Connection connection, HttpServerRequest request, HttpServerResponse response)

 

Sub HandleHttpRequest(connection As Connection, request As HttpServerRequest, response As HttpServerResponse)

Parameters:

  • connection:
  • request:
  • response:

HttpRequest

 

event HttpRequest: EventHandler<HttpRequestEventArgs>;

 

delegate EventHandler<HttpRequestEventArgs> HttpRequest()

 

Event HttpRequest As EventHandler<HttpRequestEventArgs>

IsRunningOnMono  protected    (declared in Server)

 

class method IsRunningOnMono: Boolean

 

static Boolean IsRunningOnMono()

 

Shared Function IsRunningOnMono() As Boolean

KeepAlive

Controls whether to use HTTP Keep-Alive to keep the connection alive between requests.
If enabled (true), once a request is made and a connection is established, this connection is kept open and used for future requests.
If disabled, the connection is closed, and a new connection is created for future requests.
Since establishing a connection is - relatively speaking - a costly and resource intensive operation for the network, compared to sending small amounts of data, it is recommended to keep this option enabled for optimal performance, if requests to the server are done relatively frequently.
For Keep-Alive to work, the option must be supported and enabled on both client and server.

 

property KeepAlive: Boolean read write;

 

Boolean KeepAlive { get; set; }

 

Property KeepAlive() As Boolean

MaxLineLength    (declared in Server)

Gets or sets the default MaxLineLength value for all newly created Connections.

See the desription of the Connection.MaxLineLength property for details.

 

property MaxLineLength: Int32 read write;

 

Int32 MaxLineLength { get; set; }

 

Property MaxLineLength() As Int32

MaxLineLengthEnabled    (declared in Server)

Gets or sets the default MaxLineLengthEnabled value for all newly created Connections.

See the desription of the Connection.MaxLineLengthEnabled property for details.

 

property MaxLineLengthEnabled: Boolean read write;

 

Boolean MaxLineLengthEnabled { get; set; }

 

Property MaxLineLengthEnabled() As Boolean

Open    (declared in Server)

This method causes the server to start listening for incoming connections.

 

method Open

 

void Open()

 

Sub Open()

Port    (declared in Server)

Gets or sets the port number on which the server will listen.

 

property Port: Int32 read write;

 

Int32 Port { get; set; }

 

Property Port() As Int32

ServerName

 

property ServerName: String read write;

 

String ServerName { get; set; }

 

Property ServerName() As String

ShouldSerializePort    (declared in Server)

Returns true when the DefaultPort is not equal to the Port.

 

method ShouldSerializePort: Boolean

 

Boolean ShouldSerializePort()

 

Function ShouldSerializePort() As Boolean

SslOptions    (declared in Server)

Gets the SslConnectionFactory instance that can be used to configure the SSL options of the current Server instance.

 

property SslOptions: SslConnectionFactory read;

 

SslConnectionFactory SslOptions { get; }

 

ReadOnly Property SslOptions() As SslConnectionFactory

Timeout    (declared in Server)

Gets or sets the default Timeout value for all newly created Connections.

See the desription of the Connection.Timeout property for details.

 

property Timeout: Int32 read write;

 

Int32 Timeout { get; set; }

 

Property Timeout() As Int32

TimeoutEnabled    (declared in Server)

Gets or sets the default TimeoutEnabled value for all newly created Connections.

See the desription of the Connection.TimeoutEnabled property for details.

 

property TimeoutEnabled: Boolean read write;

 

Boolean TimeoutEnabled { get; set; }

 

Property TimeoutEnabled() As Boolean

TriggerHttpRequest  protected

 

method TriggerHttpRequest(e: HttpRequestEventArgs)

 

void TriggerHttpRequest(HttpRequestEventArgs e)

 

Sub TriggerHttpRequest(e As HttpRequestEventArgs)

Parameters:

  • e:

ValidateRequests

 

property ValidateRequests: Boolean read write;

 

Boolean ValidateRequests { get; set; }

 

Property ValidateRequests() As Boolean

 

Active    (declared in Server)

Gets or sets the flag defining whether the server is listening for incoming connections.

Setting this property to true or false calls the Open or Close methods, accordingly

 

property Active: Boolean read write;

 

Boolean Active { get; set; }

 

Property Active() As Boolean

BindAddressV4    (declared in Server)

 

property BindAddressV4: IPAddress read write;

 

IPAddress BindAddressV4 { get; set; }

 

Property BindAddressV4() As IPAddress

BindAddressV6    (declared in Server)

 

property BindAddressV6: IPAddress read write;

 

IPAddress BindAddressV6 { get; set; }

 

Property BindAddressV6() As IPAddress

BindingV4    (declared in Server)

Gets the IPv4 ServerBinding instance.

The returned instance can be used to fine-tune the IPv4 server endpoint.

 

property BindingV4: ServerBinding read;

 

ServerBinding BindingV4 { get; }

 

ReadOnly Property BindingV4() As ServerBinding

BindingV6    (declared in Server)

Gets the IPv6 ServerBinding instance.

The returned instance can be used to fine-tune the IPv6 server endpoint.

 

property BindingV6: ServerBinding read;

 

ServerBinding BindingV6 { get; }

 

ReadOnly Property BindingV6() As ServerBinding

BindV4    (declared in Server)

Gets or sets the flag indicating whether the server should listen for IPv4 connections.

Setting this flag doesn't have any immediate effect. Its value is used only when the server is opened (either by setting the Active property to true or by directly calling the Open method).

 

property BindV4: Boolean read write;

 

Boolean BindV4 { get; set; }

 

Property BindV4() As Boolean

BindV6    (declared in Server)

Gets or sets the flag indicating whether the server should listen for IPv6 connections.

Setting this flag doesn't have any immediate effect. Its value is used only when the server is opened (either by setting the Active property to true or by directly calling the Open method).

 

property BindV6: Boolean read write;

 

Boolean BindV6 { get; set; }

 

Property BindV6() As Boolean

CloseConnectionsOnShutdown    (declared in Server)

Gets or sets the flag indicating whether the currently open client connections should be appropriately closed on server shutdown.

The default value is true.

 

property CloseConnectionsOnShutdown: Boolean read write;

 

Boolean CloseConnectionsOnShutdown { get; set; }

 

Property CloseConnectionsOnShutdown() As Boolean

ConnectionClass    (declared in Server)

Gets or sets an alternative Connection class to be used for incoming data connections. The class described by the assigned Type must be a descendant of the Connection class, and will be used for all connections that are established after the property has been set.

Existing connections are not affected by changing the property.

If the ConnectionType property value is null (default), instances of the Connection base class will be used.

 

property ConnectionClass: Type read write;

 

Type ConnectionClass { get; set; }

 

Property ConnectionClass() As Type

ConnectionFactory    (declared in Server)

Gets or sets an alternative Connection factory instance to be used for incoming data connections. This factory will be used to create corresponding Connection instances for all connections that are established after the property has been set.

Existing connections are not affected by changing the property.

This property has precendence over the ConnectionClass property.

 

property ConnectionFactory: IConnectionFactory read write;

 

IConnectionFactory ConnectionFactory { get; set; }

 

Property ConnectionFactory() As IConnectionFactory

DefaultPort  protected    (declared in Server)

Gets or sets the default port number.

 

property DefaultPort: Int32 read write;

 

Int32 DefaultPort { get; set; }

 

Property DefaultPort() As Int32

EnableNagle    (declared in Server)

Gets or the sets flag indicating whether the Nagle's algoritm should be used.

Setting this flag doesn't have any immediate effect. Its value is used only when the server is opened (either by setting the Active property to true or by directly calling the Open method).

 

property EnableNagle: Boolean read write;

 

Boolean EnableNagle { get; set; }

 

Property EnableNagle() As Boolean

KeepAlive

Controls whether to use HTTP Keep-Alive to keep the connection alive between requests.
If enabled (true), once a request is made and a connection is established, this connection is kept open and used for future requests.
If disabled, the connection is closed, and a new connection is created for future requests.
Since establishing a connection is - relatively speaking - a costly and resource intensive operation for the network, compared to sending small amounts of data, it is recommended to keep this option enabled for optimal performance, if requests to the server are done relatively frequently.
For Keep-Alive to work, the option must be supported and enabled on both client and server.

 

property KeepAlive: Boolean read write;

 

Boolean KeepAlive { get; set; }

 

Property KeepAlive() As Boolean

MaxLineLength    (declared in Server)

Gets or sets the default MaxLineLength value for all newly created Connections.

See the desription of the Connection.MaxLineLength property for details.

 

property MaxLineLength: Int32 read write;

 

Int32 MaxLineLength { get; set; }

 

Property MaxLineLength() As Int32

MaxLineLengthEnabled    (declared in Server)

Gets or sets the default MaxLineLengthEnabled value for all newly created Connections.

See the desription of the Connection.MaxLineLengthEnabled property for details.

 

property MaxLineLengthEnabled: Boolean read write;

 

Boolean MaxLineLengthEnabled { get; set; }

 

Property MaxLineLengthEnabled() As Boolean

Port    (declared in Server)

Gets or sets the port number on which the server will listen.

 

property Port: Int32 read write;

 

Int32 Port { get; set; }

 

Property Port() As Int32

ServerName

 

property ServerName: String read write;

 

String ServerName { get; set; }

 

Property ServerName() As String

SslOptions    (declared in Server)

Gets the SslConnectionFactory instance that can be used to configure the SSL options of the current Server instance.

 

property SslOptions: SslConnectionFactory read;

 

SslConnectionFactory SslOptions { get; }

 

ReadOnly Property SslOptions() As SslConnectionFactory

Timeout    (declared in Server)

Gets or sets the default Timeout value for all newly created Connections.

See the desription of the Connection.Timeout property for details.

 

property Timeout: Int32 read write;

 

Int32 Timeout { get; set; }

 

Property Timeout() As Int32

TimeoutEnabled    (declared in Server)

Gets or sets the default TimeoutEnabled value for all newly created Connections.

See the desription of the Connection.TimeoutEnabled property for details.

 

property TimeoutEnabled: Boolean read write;

 

Boolean TimeoutEnabled { get; set; }

 

Property TimeoutEnabled() As Boolean

ValidateRequests

 

property ValidateRequests: Boolean read write;

 

Boolean ValidateRequests { get; set; }

 

Property ValidateRequests() As Boolean

 

IsRunningOnMono  protected    (declared in Server)

 

class method IsRunningOnMono: Boolean

 

static Boolean IsRunningOnMono()

 

Shared Function IsRunningOnMono() As Boolean

 

constructor

 

constructor

 

HttpServer()

 

Sub New()

constructor (IContainer)

 

constructor(container: IContainer)

 

HttpServer(IContainer container)

 

Sub New(container As IContainer)

Parameters:

  • container:

Close    (declared in Server)

This method causes the server to stop listening for incoming connections.

 

method Close

 

void Close()

 

Sub Close()

CreateWorker  protected

 

method CreateWorker(owner: Server): Object

 

Object CreateWorker(Server owner)

 

Function CreateWorker(owner As Server) As Object

Parameters:

  • owner:

Dispose  protected    (declared in Server)

Disposes of the current instance and releases all resources used by it.

 

method Dispose(disposing: Boolean)

 

void Dispose(Boolean disposing)

 

Sub Dispose(disposing As Boolean)

Parameters:

  • disposing:

HandleHttpRequest  protected

 

method HandleHttpRequest(connection: Connection; request: HttpServerRequest; response: HttpServerResponse)

 

void HandleHttpRequest(Connection connection, HttpServerRequest request, HttpServerResponse response)

 

Sub HandleHttpRequest(connection As Connection, request As HttpServerRequest, response As HttpServerResponse)

Parameters:

  • connection:
  • request:
  • response:

Open    (declared in Server)

This method causes the server to start listening for incoming connections.

 

method Open

 

void Open()

 

Sub Open()

ShouldSerializePort    (declared in Server)

Returns true when the DefaultPort is not equal to the Port.

 

method ShouldSerializePort: Boolean

 

Boolean ShouldSerializePort()

 

Function ShouldSerializePort() As Boolean

TriggerHttpRequest  protected

 

method TriggerHttpRequest(e: HttpRequestEventArgs)

 

void TriggerHttpRequest(HttpRequestEventArgs e)

 

Sub TriggerHttpRequest(e As HttpRequestEventArgs)

Parameters:

  • e:

 

HttpRequest

 

event HttpRequest: EventHandler<HttpRequestEventArgs>;

 

delegate EventHandler<HttpRequestEventArgs> HttpRequest()

 

Event HttpRequest As EventHandler<HttpRequestEventArgs>