Skip to content

chandleg/socketcluster-client-cpp

Repository files navigation

Socket Cluster C++ Client

This repository hosts a SocketCluster C++ Client designed to facilitate communication between C++ applications and SocketCluster servers. This client supports real-time, scalable, bi-directional communication, making it ideal for applications requiring high performance and efficient data exchange. S This client is developed using the Boost Beast and jsoncpp libraries in C++.

Features

  • Real-Time Communication: Enables real-time connectivity with SocketCluster servers.
  • Bi-Directional Communication: Supports both sending and receiving messages efficiently.
  • Scalability: Designed to handle high-load scenarios, making it suitable for large-scale deployments.
  • WebSocket Support: Utilizes WebSockets for low-latency communication.

Getting Starting

A detailed list of the libraries API can be found here.

Security / SSL

Tokens

To address the threat of unauthenticated connections, we will utilize SocketCluster's built-in JWT-based authentication mechanism. Each JWT is uniquely signed using a server-specific authKey, ensuring secure and verified connections right from the initial handshake. Follow the guide here to enable JWTs with SocketCluster.

WSS

To allow development and production runs a flag can be set to enable SSL assuming the SocketCluster server has been configured to accept SSL connections. To best achieve this a flag can be set in the client to put the data transfer into the secure mode.

#define SOCKETCLUSTER_SLL 1

Performance

The maximum output and input rates have not been tested yet. This document will be updated with statistics after tests have been run. Both example programs have been profiled and show no memory leaks.

The SocketCluster server has been thoroughly tested in an academic paper. This client library aims to match the results listed.