SocketMeister 10.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package SocketMeister --version 10.2.0
                    
NuGet\Install-Package SocketMeister -Version 10.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SocketMeister" Version="10.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SocketMeister" Version="10.2.0" />
                    
Directory.Packages.props
<PackageReference Include="SocketMeister" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SocketMeister --version 10.2.0
                    
#r "nuget: SocketMeister, 10.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SocketMeister@10.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SocketMeister&version=10.2.0
                    
Install as a Cake Addin
#tool nuget:?package=SocketMeister&version=10.2.0
                    
Install as a Cake Tool

SocketMeister Version 10

SocketMeister Version 10 is a significant upgrade on earlier versions (1.x.x, 2.x.x, 3.x.x and 4.x.x). Although the public interface hasn't changed, previous versions of SocketMeister do not work with Version 10. If you upgrade to version 10 you will need to upgrade and rollout all software using SocketClient and SocketServer. Older clients will fail to connect to SocketServer 10.

SocketMeister 10 introduces robust handshaking and version awareness between clients and servers. which will allow for future functionality to be introduced without breaking backward compatibility.

Highly integrated logging via a LogRaised event in the SocketClient provides comprehensive feedback on the state of the client and throughput of messages.

SocketMeister Overview

Please visit the SocketMeister project website on GitHub for detailed documentation and C# examples to get you quickly up an running.

SocketMeister is a socket library for solutions requiring persistent, fault tolerant, multiple endpoint TCP/IP connectivity. It is easy to use, high throughput and multithreaded. SocketMeister can scale from a single socket server to a farm of server instances.

The SocketMeister SocketClient provides fault tolerance by automatically reconnecting in the event of connection failure and in environment where multiple servers are deployed (For example, for redundancy and/or high workload), SocketMeister Client will automatically round-robin until a server is found.

The SocketMeister SocketServer provides a simple framework whereby messages and requests (messages expecting a response) are presented in thread independent events. Your code sits cleanly in the event handler, where it can read an array of parameters sent by the client and execute your business logic. In the case of a request, your code can provide a response, which is automatically returned to the client. SocketMeister supports binary arrays, strings and most simple data types. It you enable optional compression, data is seamlessly compressed and decompressed using a high throughput compression algorithm.

SocketMeister NuGet Packages

SocketMeister SocketClient works with many .NET framework versions, from .NET 3.5 to .NET 9

SocketMeister SocketServer is included in DLLs compiled with .NET framework 4.0 and above.

There are 2 active NuGet packages available:

  1. The SocketMeister NuGet package contains a single DLL for .NET Frameworks from .NET 3.5 to .NET 9. The SocketMeister SocketClient in included in all frameworks but the SocketServer component is not available in .NET 3.5.

  2. The SocketMeister.Sources NuGet package contains the C# source files for SocketMeister, enabling you to embed SocketMeister in your own project EXE or DLL. This eliminates the need to ship the SocketMeister DLL with your product. Simply add the SocketMeister.Sources NuGet package to your Visual Studio project and a folder containing the code will be added to the project.

SocketMeister for Silverlight is no longer maintained.

SocketMeister.Silverlight is no longer maintained and will not work with SocketMeister version 10 and above.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net35 is compatible.  net40 was computed.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 is compatible.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 3.5

    • No dependencies.
  • .NETFramework 4.5

    • No dependencies.
  • .NETFramework 4.6

    • No dependencies.
  • .NETFramework 4.7.2

    • No dependencies.
  • .NETFramework 4.8

    • No dependencies.
  • .NETStandard 2.0

  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SocketMeister:

Package Downloads
RemoteHub.Lirc

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.2.7 84 5/3/2025
10.2.6 94 4/26/2025
10.2.5 85 4/26/2025
10.2.4 168 4/19/2025
10.2.3 200 4/14/2025
10.2.2 156 4/2/2025
10.2.1 153 4/2/2025
10.2.0 154 3/31/2025
10.1.0 156 3/31/2025
10.0.3 133 3/28/2025
10.0.2 140 3/27/2025
10.0.1 134 3/26/2025
10.0.0 128 3/26/2025
4.1.5 188 3/11/2025
4.1.2 126 12/30/2024
4.1.1 105 12/28/2024
4.1.0 112 12/26/2024
4.0.6 335 1/2/2024
4.0.5 163 12/31/2023
4.0.4 525 1/6/2022
4.0.3 334 12/26/2021
4.0.2 458 6/9/2021
4.0.1 468 3/26/2021
4.0.0 451 3/15/2021
3.0.0 487 3/11/2021
2.2.5 467 3/11/2021
2.2.4 462 3/8/2021
2.2.3 500 3/6/2021
2.2.2 417 3/1/2021
2.2.1 458 2/24/2021
2.2.0 420 2/23/2021
2.0.7 478 1/20/2021
2.0.6 416 1/15/2021
2.0.5 512 10/7/2020
2.0.4 586 10/1/2020
2.0.3 500 10/1/2020
2.0.2 498 10/1/2020
2.0.0 559 5/6/2020
1.0.3 706 4/4/2019
1.0.2 670 4/2/2019
1.0.1 663 4/1/2019
1.0.0 674 3/28/2019
0.1.0-beta 502 3/27/2019

SocketMeister 10.2.0 SocketServer replaces the TraceEventRaised event with a LogRaised event for consistency with SocketClient in version 10.1.0.

SocketMeister 10.1.0 SocketClient replaces the TraceEventRaised event with a LogRaised event. The event is deeply connected to the internal operations of SocketClient, providing information on connection activities, polling, handshakes and all incoming and outgoing messages, including system and user messages. Previous logging was very limited and generated numerous threads to avoid interrupting socket operations. The new logging is handled by a single background thread.

SocketMeister 10.0.3 adds robust socket recreation when it is disposed during reconnection. Enhanced logging in SocketClient TraceEventRaised event. Reduced SocketClient reconnect time when SocketServer is restarted.

SocketMeister 10.0.2 contains a fix for when a connection was reset before the handshake is completed, the client would stop attempting to reconnect.

SocketMeister Version 10 is a significant upgrade on earlier versions (1.x.x, 2.x.x, 3.x.x and 4.x.x). Although the public interface hasn't changed, previous versions of SocketMeister do not work with Version 10. If you upgrade to version 10 you will need to upgrade and rollout all software using SocketClient and SocketServer. Older clients will fail to connect to SocketServer 10.

SocketMeister 10 introduces robust handshaking and version awareness between clients and servers. Thich will allow for future functionality to be introduced without breaking backward compatibility.

SocketClient class has an additional event called TraceEventRaised, which provides detailed information regarding connection attempts, handshaking, server information and errors.