RRQMSocket ist ein integriertes, ultraleichtes Netzwerkkommunikationsdienst-Framework. Es verfügt über die Merkmale einer hohen gleichzeitigen Verbindung, einer hohen gleichzeitigen Verarbeitung, eines Ereignisabonnements, einer Plug-In-Erweiterung, einer Multithread-Verarbeitung, eines Speicherpools, eines Objektpools usw. und ermöglicht es Benutzern, ein Netzwerk-Framework einfacher und schneller aufzubauen. In Bezug auf die Übertragungseffizienz kann die synchrone Übertragung 20 W/s und die asynchrone Übertragung 60 W/s erreichen. Die Empfangs- und Verarbeitungseffizienz des Servers hängt von der Anzahl der Threads ab.
Support-Umgebung:
.NET Framework 4.5 und höher.
.NETCore3.1 und höher.
.NETStandard2.0 und höher.
Unterstützte Frameworks:
WPF
Winform
Blazor
Xamarin
Mono
Einheit
Andere (d. h. alle C#-Systeme)
Merkmale:
1. Objektpool
Objektpools haben in RRQMSocket viele Anwendungen, die beiden wichtigsten sind der Verbindungsobjektpool und der Verarbeitungsobjektpool. Der Verbindungsobjektpool bedeutet, dass der Client bei erfolgreicher Verbindung zunächst im Verbindungsobjektpool nach TcpSocketClient sucht und ihn dann erstellt, wenn er nicht vorhanden ist. Wenn ein Client offline geht, wird sein TcpSocketClient recycelt. Dies ist der Grund für die Wiederverwendung von IDs.
Dann gibt es noch den Verarbeitungsobjektpool. Der Thread, der Daten empfängt, und der IOCP-Kernel-Thread sind getrennt. Das heißt, der Client sendet beispielsweise 10.000 Daten an den Server, aber der Server verarbeitet sie nach dem Empfang sehr langsam Dann wird das herkömmliche iocp definitiv die Empfangsrate verlangsamen, dann das TCP-Fenster des Clients benachrichtigen, dass eine Überlastung auftritt, und den Client dann das Senden unterbrechen lassen. In RRQMSocket werden jedoch zunächst alle empfangenen Daten in der Warteschlange gespeichert. Gleichzeitig werden Threads zur Verarbeitung der empfangenen Nachrichteninformationen zugewiesen Lake“, was die Fähigkeit zur Datenverarbeitung erheblich verbessern kann.
2. Multithreading
Aufgrund der Existenz des Verarbeitungsobjektpools wird die Multithread-Verarbeitung einfach. Wenn die Client-Verbindung abgeschlossen ist, wird der Nachrichtenverarbeitungslogik-Thread der Client-Hilfsklasse (TcpSocketClient) automatisch zugewiesen. Wenn die Anzahl der Server-Threads 10 beträgt, wird der erste verbundene Client Thread 0 und die zweiten Verbindungen zugewiesen Thread Nr. 1 usw. zugewiesen werden, und zwar kreisförmig. Wenn ein Client Daten empfängt, stellt er die Daten in eine Warteschlange, die dem aktuellen Thread gehört, und aktiviert den Thread zur Ausführung.
3. Traditionelles IOCP und RRQMSocket
Das IOCP von RRQMSocket unterscheidet sich auch vom herkömmlichen Beispiel: MemoryBuffer wird verwendet, um einen Speicher zu öffnen, ihn dann gleichmäßig aufzuteilen und dann für jede Sitzung einen Bereich zum Empfangen der Daten zuzuweisen Erstellen Sie eine weitere Kopie der Daten und kopieren Sie sie anschließend. RRQMSocket entnimmt vor jedem Empfang einen verfügbaren Speicherblock aus dem Speicherpool und verwendet ihn dann direkt zum Empfang. Nach dem Empfang der Daten wird der Speicherblock direkt verworfen, wodurch der Kopiervorgang vermieden wird, obwohl er nur klein ist , aber wenn 64-KB-Daten 1000 W-mal übertragen werden, unterscheidet sich die Leistung um das Zehnfache. Daher wird die Effizienz der Dateiübertragung auf dieser Grundlage hoch sein.
4. Datenverarbeitungsadapter
Ich glaube, jeder hat andere Socket-Produkte wie HPSocket, SuperSocket usw. verwendet, daher stützte sich das Design von RRQMSocket auch auf die hervorragenden Designkonzepte anderer Produkte, und der Datenverarbeitungsadapter ist eines davon, aber was unterscheidet sich davon? Das Design anderer Produkte besteht darin, dass die Adapterfunktion leistungsstärker ist. Sie kann die realen Daten ignorieren und die gewünschten Daten simulieren, um beispielsweise das Problem der Datenpaketierung zu lösen. Um das Problem der Sticky-Pakete zu lösen, können Sie das HTTP-Protokoll auch direkt analysieren und nach der Verarbeitung durch den Adapter ein HttpRequest-Objekt zurückgeben.
5. Klebende Pakete und Lösungen für die Vergabe von Unteraufträgen
Es ist sehr einfach, mit TCP-Paket-Sticking und Unterpaketproblemen in RRQMSocket umzugehen. Wechseln Sie einfach die verschiedenen Datenverarbeitungsadapter. Beispiel: Um feste Header zu verwenden, müssen Sie TcpSocketClient und TcpClient nur Instanzen von FixedHeaderDataHandlingAdapter zuweisen. Der entsprechende Prozessor verfügt außerdem über eine feste Länge, eine Endzeichensegmentierung usw.