Built-in Compression
Enable compression on both client and server for bandwidth-heavy payloads.
Scenario
You're sending large text or binary data and want to reduce network usage.
Code Example
using System;
using System.Collections.Generic;
using System.Text;
using SocketMeister;
// Enable compression on both sides
var server = new SocketServer(port: 5001, CompressSentData: true);
server.MessageReceived += (s, e) =>
{
// Echo back the first string parameter
string msg = (string)e.Parameters[0];
e.Response = Encoding.UTF8.GetBytes(msg);
};
server.Start();
var endpoints = new List<SocketEndPoint> { new SocketEndPoint("localhost", 5001) };
var client = new SocketClient(endpoints, EnableCompression: true, friendlyName: "CompressionClient");
client.Start();
string payload = new string('X', 100_000);
byte[] reply = client.SendMessage(new object[] { payload }, TimeoutMilliseconds: 10000);
Console.WriteLine("Client sent compressed payload and received " + reply.Length + " bytes.");
client.Stop();
server.Stop();