RRQMSocket adalah kerangka layanan komunikasi jaringan ultra-ringan yang terintegrasi. Ini memiliki karakteristik koneksi bersamaan yang tinggi, pemrosesan bersamaan yang tinggi, langganan acara, ekstensi plug-in, pemrosesan multi-utas, kumpulan memori, kumpulan objek, dll., memungkinkan pengguna untuk membangun kerangka jaringan dengan lebih sederhana dan cepat. Dari segi efisiensi transmisi, transmisi sinkron bisa mencapai 20w/s, dan transmisi asinkron bisa mencapai 60w/s. Penerimaan server dan efisiensi pemrosesan bergantung pada jumlah thread.
Lingkungan pendukung:
.NET Framework 4.5 dan lebih tinggi.
.NETCore3.1 dan yang lebih baru.
.NETStandard2.0 dan lebih tinggi.
Kerangka kerja yang didukung:
WPF
bentuk kemenangan
jaket
Xamarin
Mono
Persatuan
Lainnya (yaitu semua sistem C#)
Fitur:
1. Kumpulan objek
Kumpulan objek memiliki banyak aplikasi di RRQMSocket, dua yang paling penting adalah kumpulan objek koneksi dan kumpulan objek pemrosesan. Kumpulan objek koneksi berarti ketika klien berhasil tersambung, klien akan mencari TcpSocketClient terlebih dahulu di kumpulan objek koneksi, lalu membuatnya jika tidak ada. Jika klien offline, TcpSocketClient-nya akan didaur ulang. Inilah alasan penggunaan kembali ID.
Lalu ada pool objek pemrosesan. Di RRQMSocket, thread yang menerima data dan thread kernel IOCP dipisahkan. Artinya, misalnya klien mengirim 10.000 data ke server, tetapi server memprosesnya dengan sangat lambat setelah menerimanya. itu. Kemudian iocp tradisional Ini pasti akan memperlambat laju penerimaan, kemudian memberi tahu jendela TCP klien bahwa terjadi kemacetan, dan kemudian membiarkan klien menunda pengiriman. Namun, di RRQMSocket, semua data yang diterima akan disimpan dalam antrian. Pertama, ini tidak akan mempengaruhi penerimaan iocp. Pada saat yang sama, thread akan dialokasikan untuk memproses informasi pesan yang diterima lake", yang dapat sangat Meningkatkan kemampuan memproses data.
2. Multi-utas
Karena adanya kumpulan objek pemrosesan, pemrosesan multi-thread menjadi sederhana. Ketika koneksi klien selesai, thread logika pemrosesan pesan dari kelas tambahan klien (TcpSocketClient) akan secara otomatis ditetapkan. Jika jumlah thread server adalah 10, klien pertama yang terhubung akan ditetapkan ke thread 0, dan Koneksi kedua akan ditetapkan ke thread 0. ditugaskan ke thread No. 1, dan seterusnya, secara melingkar. Ketika klien menerima data, ia akan memasukkan data ke dalam antrian yang dimiliki oleh thread saat ini dan membangunkan thread untuk dieksekusi.
3. IOCP dan RRQMSocket tradisional
IOCP RRQMSocket juga berbeda dari yang tradisional.Mengambil contoh resmi Microsoft sebagai contoh, MemoryBuffer digunakan untuk membuka memori, lalu membaginya secara merata, lalu mengalokasikan area untuk setiap sesi untuk menerima data data, buat salinan lain, lalu salin. Pemrosesan pelemparan data. RRQMSocket mengambil blok memori yang tersedia dari kumpulan memori sebelum setiap penerimaan, dan kemudian menggunakannya secara langsung untuk penerimaan, ia langsung membuang blok memori tersebut, sehingga menghindari operasi penyalinan, meskipun hanya desain kecil , tetapi saat mentransmisikan data 64kb 1000w kali, kinerjanya berbeda 10 kali lipat. Oleh karena itu, berdasarkan hal tersebut, efisiensi transfer file akan tinggi.
4. Adaptor pemrosesan data
Saya yakin semua orang pernah menggunakan produk Socket lain, seperti HPSocket, SuperSocket, dll., jadi desain RRQMSocket juga mengacu pada konsep desain unggulan dari produk lain, dan adaptor pemrosesan data adalah salah satunya, namun apa bedanya dengan produk Socket lain? desain produk lainnya adalah RRQMSocket Fungsi adaptor lebih kuat, dapat mengabaikan data nyata dan mensimulasikan data yang diinginkan, misalnya dapat melakukan praproses data untuk menyelesaikan masalah paketisasi data. Untuk mengatasi masalah paket lengket, Anda juga dapat langsung mengurai protokol HTTP dan mengembalikan objek HttpRequest setelah diproses oleh adaptor.
5. Paket melekat dan solusi subkontrak
Cara mengatasi masalah packet sticking dan sub-packet TCP di RRQMSocket sangatlah mudah. Ubah saja adaptor pemrosesan data yang berbeda. Misalnya: untuk menggunakan header tetap, Anda hanya perlu menetapkan instance FixedHeaderDataHandlingAdapter ke TcpSocketClient dan TcpClient. Prosesor yang sesuai juga memiliki panjang tetap, segmentasi karakter terminasi, dll.