Skip to main content

SocketX Server

SocketX Server is a WebSocket proxy written in Go. It terminates the SocketX/MTE-protected WebSocket connection from a SocketX client, decodes client payloads inside the proxy, and forwards plaintext WebSocket frames to the configured upstream WebSocket service. Responses from the upstream service are encoded with MTE before they are sent back to the client.

If the configured upstream URL uses wss://, the proxy-to-upstream leg is protected by TLS. If it uses ws://, that leg is plaintext.

SocketX Diagram

Features​

  • SocketX/MTE client protection: Wraps WebSocket payloads in the SocketX protocol and uses the Eclypses MTE library for encode/decode operations between client and proxy.
  • Dynamic upstream routing: Maps the incoming request Host header to a configured upstream WebSocket URL.
  • Host and origin allow-listing: Validates each connection against DOMAIN_MAP before upgrading to WebSocket.
  • Post-quantum handshake: Establishes an MTE encoder/decoder pair with a Kyber key exchange before proxying application data.
  • Text and binary frame support: Preserves WebSocket text and binary message semantics through SocketX message type mapping.
  • Connection audit logging: Emits structured logs for MTE operations and connection close summaries.
  • Graceful shutdown: Handles SIGINT and SIGTERM for clean connection teardown.

Get Started​

Health Check​

SocketX exposes a simple HTTP endpoint:

curl http://localhost:8080/api/socketx-echo?msg=test

Expected response:

{
"message": "test",
"timestamp": "<RFC3339 timestamp>"
}

Without msg, the endpoint returns "message": "true".

Support​

For assistance, contact Eclypses Support:

customer_support@eclypses.com

Monday-Friday, 8:00 AM-5:00 PM MST, excluding holidays.