IP*Works! WS V9 - Online Help
IP*Works! WS V9
Questions / Feedback?

WSProxy Class

Properties   Methods   Events   Configuration Settings   Errors  

The WSProxy component is used to forward traffic received on a WebSocket to another destination.

Class Name

IPWorksWS_WSProxy

Procedural Interface

 ipworksws_wsproxy_open();
 ipworksws_wsproxy_close($res);
 ipworksws_wsproxy_register_callback($res, $id, $function);
 ipworksws_wsproxy_get_last_error($res);
 ipworksws_wsproxy_get_last_error_code($res);
 ipworksws_wsproxy_set($res, $id, $index, $value);
 ipworksws_wsproxy_get($res, $id, $index);
 ipworksws_wsproxy_do_config($res, $configurationstring);
 ipworksws_wsproxy_do_disconnect($res, $connectionid);
 ipworksws_wsproxy_do_doevents($res);
 ipworksws_wsproxy_do_shutdown($res);

Remarks

The WSProxy class provides a simple way to accept a WebSocket connection and forward the incoming data to a separate destination host.

The WSProxy class is a server that accepts incoming WebSocket connections and will establish an outgoing connection to the specified forward host and forward data it receives onto the final destination. For instance, take this diagram:

Client ---WebSocket protocol---> WSProxy ---plain TCP---> Forward Host

In this example the Client establishes a WebSocket connection to the WSProxy component. The WSProxy class then establishes a separate standard TCP connection to Forward Host. The Client can then communicate with the Forward Host and data will be passed through WSProxy.

To begin using the class first specify a valid value for LocalPort. This is the port on which incoming connections will be accepted. Specify values for DefaultForwardHost and DefaultForwardPort. This is the destination to which the data will be forwarded. Note that you may override these values on a per connection basis if desired when the client connects.

To begin listening set Listening to true.

When a client connects the WebSocketOpenRequest event will fire. To accept the connection simply allow the event to complete. To reject the request set the StatusCode parameter to an HTTP error code (such as 401). You may also set the ForwardHost and ForwardPort event parameters to override the default values.

Once the connection is established all data received on the connection will automatically be forwarded to the forward host. Any data received from the forward host will be sent back to the client. The client is now able to freely communicate with the forward host.

Property List


The following is the full list of the properties of the class with short descriptions. Click on the links for further details.

ConnectionBacklogThe maximum number of pending connections maintained by the TCP/IP subsystem.
WSPConnectionCountThe number of records in the WSPConnection arrays.
WSPConnectionConnectedThis property is used to disconnect individual connections and/or show their status.
WSPConnectionConnectionIdThis property contains an identifier generated by the component to identify each connection.
WSPConnectionForwardHostThis property shows the address of the forward host.
WSPConnectionForwardPortThis property shows the port of the forward host.
WSPConnectionHostThe Host header value of the connected client.
WSPConnectionLocalAddressThis property shows the IP address of the interface through which the connection is passing.
WSPConnectionOriginThe Origin header value of the connected client.
WSPConnectionRemoteHostThis property shows the IP address of the connected client.
WSPConnectionRemotePortThis property shows the port of the connected client.
WSPConnectionRequestHeadersThe HTTP headers sent by the client in the initial WebSocket connection request.
WSPConnectionRequestURIThe requested URI sent by the client in the initial WebSocket connection request.
WSPConnectionSubProtocolsThe subprotocols (application-level protocols layered over the WebSocket Protocol) sent by the client in the initial WebSocket connection request.
WSPConnectionTimeoutA timeout for the component.
DefaultForwardHostThe default address of the host to which data will be forwarded.
DefaultForwardPortThe default port of the host to which data will be forwarded.
DefaultTimeoutAn initial timeout value to be used by incoming connections.
FirewallAutoDetectThis property tells the component whether or not to automatically detect and use firewall system settings, if available.
FirewallTypeThis property determines the type of firewall to connect through.
FirewallHostThis property contains the name or IP address of firewall (optional).
FirewallPasswordThis property contains a password if authentication is to be used when connecting through the firewall.
FirewallPortThis property contains the TCP port for the firewall Host .
FirewallUserThis property contains a user name if authentication is to be used connecting through a firewall.
ListeningIf True, the component accepts incoming connections on LocalPort.
LocalHostThe name of the local host or user-assigned IP interface through which connections are initiated or accepted.
LocalPortThe TCP port in the local host where the component listens.
SSLAuthenticateClientsIf true, the server asks the client(s) for a certificate.
SSLCertEncodedThe certificate (PEM/base64 encoded).
SSLCertStoreThe name of the certificate store for the client certificate.
SSLCertStorePasswordIf the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store.
SSLCertStoreTypeThe type of certificate store for this certificate.
SSLCertSubjectThe subject of the certificate used for client authentication.
UseSSLDetermines if SSL is negotiated with incoming connections.

Method List


The following is the full list of the methods of the class with short descriptions. Click on the links for further details.

ConfigSets or retrieves a configuration setting .
DisconnectDisconnect the specified client.
DoEventsProcesses events from the internal message queue.
ShutdownShuts down the server.

Event List


The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.

ConnectedFired when a WebSocket is successfully opened.
ConnectionRequestFired when a request for connection comes from a remote host.
DataInFired when data is received.
DisconnectedFired when a WebSocket connection is disconnected.
ErrorInformation about errors during data delivery.
SSLClientAuthenticationFired when the client presents its credentials to the server.
SSLStatusShows the progress of the secure connection.
WebSocketOpenRequestFired when a client attempts to open a WebSocket.

Configuration Settings


The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.

WaitForCloseResponseDetermines whether or not the component will forcibly close a connection.
BufferMessageIndicates whether or not the entire message is buffered before firing the DataIn event.
DisconnectStatusCodeSpecifies the status code when closing a connection.
DisconnectStatusDescriptionSpecifies the message associated with the disconnect status code.
MaxFrameSizeSpecifies the maximum size of the outgoing message in bytes before fragmentation occurs.
BindExclusivelyWhether or not the component considers a local port reserved for exclusive use.
InBufferSizeThe size in bytes of the incoming queue of the socket.
MaxConnectionsThe maximum number of connections available.
OutBufferSizeThe size in bytes of the outgoing queue of the socket.
KeepAliveTimeThe inactivity time in milliseconds before a TCP keep-alive packet is sent.
KeepAliveIntervalThe retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.
RecordLength[ConnectionId]The length of received data records.
TcpNoDelayWhether or not to delay when sending packets.
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLProviderThe name of the security provider to use.
SSLSecurityFlagsFlags that control certificate verification.
OpenSSLCADirThe path to a directory containing CA certificates.
OpenSSLCAFileName of the file containing the list of CA's trusted by your application.
OpenSSLCipherListA string that controls the ciphers to be used by SSL.
OpenSSLPrngSeedDataThe data to seed the pseudo random number generator (PRNG).
BindExclusivelyWhether or not the component considers a local port reserved for exclusive use.
InBufferSizeThe size in bytes of the incoming queue of the socket.
MaxConnectionsThe maximum number of connections available.
OutBufferSizeThe size in bytes of the outgoing queue of the socket.
KeepAliveTimeThe inactivity time in milliseconds before a TCP keep-alive packet is sent.
KeepAliveIntervalThe retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.
RecordLength[ConnectionId]The length of received data records.
TcpNoDelayWhether or not to delay when sending packets.
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLProviderThe name of the security provider to use.
SSLSecurityFlagsFlags that control certificate verification.
OpenSSLCADirThe path to a directory containing CA certificates.
OpenSSLCAFileName of the file containing the list of CA's trusted by your application.
OpenSSLCipherListA string that controls the ciphers to be used by SSL.
OpenSSLPrngSeedDataThe data to seed the pseudo random number generator (PRNG).
CodePageThe system code page used for Unicode to Multibyte translations.

 
 
Copyright (c) 2017 /n software inc. - All rights reserved.
Build 9.0.6240.0