What can be configured?
When we created our first configuration we just changed the port for the endpoint, but what else can we configure?
Public/Private Endpoint
The main purpose of the configuration is to tell the server on what location and port we want the endpoint to be created.
Certificate
When using TLS/SSL you will tell the configuration what certificate to use.
Force client certificate
If set to true
the server will not accept connections on the endpoint unless the client passes a valid client certificate. When set to true you will be able to get information about the client certificate on the connection.
Origin
By default the origin is set to *
This means that anyone can connect regardless of origin. If you only allow traffic from certain origins you can specify this in a comma separated list.
Note:
- The origin feature is only used by clients that imlpement the websocket protocol.
- Do not use this as a security feature.
Transport
By default XSockets uses a transport that supports TLS/SSL if you use the certificate (and ssl) configuration. You can easily create custom transports by implementing the XSockets.Core.Common.Socket.ITransport
interface or inherit the XSockets.Core.XSocket.Transport.DefaultTransport
. Once you have your custom transport in place you will just tell the configuration/endpoint to use it.
Example:
public class MyCustomTransportConfig : ConfigurationSetting
{
public MyCustomTransportConfig() : base("ws://localhost:4503")
{
this.Transport = new MyCustomTransport();
}
}
You can read more about custom transports under the Transports section.
QoSRetryInterval
TBD
Performance
Backlog
TBD
ThreadPoolSize
TBD
CompletionPortThreads
TBD