لقد قمت بإنشاء تطبيق C ++ 17 جديد فقط-> JSON-RPC-CXX.
يتقن
يوفر هذا الإطار دعم Cross Platform JSON-RPC (استدعاء الإجراءات عن بُعد) لـ C ++. إنه متوافق تمامًا مع JSON-RPC 2.0 و 1.0.

5 أسباب وجيهة لاستخدام Libjson-RPC-CPP في مشروع RPC التالي
أسباب وجيهة أخرى لاستخدام Libjson-RPC-CPP
make test .
Debian (Stretch) و Ubuntu (15.10 أو أحدث)
sudo apt-get install libjsonrpccpp-dev libjsonrpccpp-toolsفيدورا
sudo dnf install libjson-rpc-cpp-devel libjson-rpc-cpp-toolsقوس لينكس
بالنسبة للقوس Linux ، يوجد PKGBUILD المقدم في AUR.
sudo aura -A libjson-rpc-cppGentoo Linux
sudo emerge dev-cpp/libjson-rpc-cppماك OS X.
لنظام التشغيل X ، تتوفر حزمة المشروب:
brew install libjson-rpc-cppالنوافذ
هناك حزمة جاهزة لاستخدام الحزمة المترجمة هنا. فقط تنزيل تنفيذ المثبت exe.
يونيكس
بالنسبة لأنظمة Debian و Arch GNU/Linux ، تتوفر جميع التبعيات عبر مدير الحزمة. بالنسبة لنظام التشغيل X ، تتوفر جميع التبعيات في المشروب
git clone https://github.com/cinemast/libjson-rpc-cpp.git
mkdir -p libjson-rpc-cpp/build
cd libjson-rpc-cpp/build
cmake .. && make
sudo make install
sudo ldconfig # only required for linuxهذا كل شيء!
إذا لم تكن راضيًا عنها ، فما عليك سوى إلغاء تثبيت نظامك (داخل البناء على الدليل):
sudo make uninstallخيارات البناء:
يجب أن يكون التكوين الافتراضي جيدًا بالنسبة لمعظم الأنظمة ، ولكن هنا تتوفر أعلام التجميع:
-DCOMPILE_TESTS=NO يعطل مجموعة اختبار الوحدة.-DCOMPILE_STUBGEN=NO يعطل بناء القفل.-DCOMPILE_EXAMPLES=NO توجد أمثلة.-DHTTP_SERVER=NO تعطيل خادم الويب libmicrohttpd.-DHTTP_CLIENT=NO تعطيل عميل Curl.-DREDIS_SERVER=NO تعطيل موصل خادم Redis.-DREDIS_CLIENT=NO تعطيل موصل عميل redis.-DUNIX_DOMAIN_SOCKET_SERVER=YES ، تمكين موصل خادم مقبس UNIX.-DUNIX_DOMAIN_SOCKET_CLIENT=YES ، تمكين موصل عميل مقبس Domain UNIX.-DFILE_DESCRIPTOR_SERVER=NO تعطيل موصل خادم واصف الملف.-DFILE_DESCRIPTOR_CLIENT=NO تعطيل موصل عميل واصف الملف.-DTCP_SOCKET_SERVER=NO تعطيل موصل خادم Socket TCP.-DTCP_SOCKET_CLIENT=NO تعطيل موصل عميل Socket TCP. سيُظهر هذا المثال الطريقة أبطأ لإنشاء خادم وعميل RPC. إذا كنت بحاجة إلى الخادم فقط ، فتجاهل الخطوة 4. إذا كنت بحاجة إلى العميل فقط ، فتجاهل الخطوة 3. يمكنك العثور على جميع موارد هذه العينة في دليل src/examples لهذا المستودع.
[
{
"name" : " sayHello " ,
"params" : {
"name" : " Peter "
},
"returns" : " Hello Peter "
},
{
"name" : " notifyServer "
}
]يتم تعريف نوع قيمة الإرجاع أو المعلمة بواسطة الحرفي المخصص لها. سوف تستخدم كعب الرعب الذي تم إنشاؤه نوع "الإرجاع" للتحقق من استجابة. في هذا المثال ، يمكنك معرفة كيفية تحديد الأساليب والإخطارات.
استدعاء jsonrpcstub:
jsonrpcstub spec.json --cpp-server=AbstractStubServer --cpp-client=StubClient
mkdir -p gen
mv abstractstubserver.h gen
mv stubclient.h gen هذا يولد AbstractStubServer وفئة StubClient وينقلهم إلى المجلد gen .
تمديد كعب الخادم التجريدي وتنفيذ جميع الطرق الافتراضية الخالصة (التجريدية) المحددة في spec.json .
انظر SRC/أمثلة/كوبسير
في الوظيفة الرئيسية ، يتم إنشاء خادم ملموس وبدأ. هذا كل شيء للخادم. يمكن لأي عميل متوافق مع JSON-RPC 2.0 الاتصال بالخادم الخاص بك.
تجميع الخادم مع:
g++ stubserver.cpp -ljsoncpp -lmicrohttpd -ljsonrpccpp-common -ljsonrpccpp-server -o sampleserverانظر SRC/أمثلة/stubClient.cpp
تجميع العميل مع:
g++ stubclient.cpp -ljsoncpp -lcurl -ljsonrpccpp-common -ljsonrpccpp-client -o sampleclientيرجى إلقاء نظرة على المساهمة
يمكنك أيضا التبرع عبر
يمكن العثور على changelogs هنا.
نحن نبذل قصارى جهدنا للحفاظ على استقرار API/ABI ، لمنع المشاكل عند تحديث هذا الإطار. يمكن العثور على تقرير التوافق هنا.
هذا الإطار مرخص تحت معهد ماساتشوستس للتكنولوجيا. جميع هذه التبعيات من المكتبات مرخصة بموجب التراخيص المتوافقة مع MIT.
إذا استخدمت هذه المكتبة ووجدتها مفيدة ، فسأكون سعيدًا جدًا إذا أخبرتني بذلك.