يسمح Mock Firebolt لمطور التطبيقات بإنشاء تطبيق متوافق مع Firebolt ليتسبب "بشكل مصطنع" في إجراء مكالمات إلى Firebolt SDK (مجموعات) Firebolt لإرجاع استجابات مختلفة عن تلك التي يتم إرجاعها بواسطة Firebolt حقيقي يعمل على أي جهاز (أجهزة) قد يكون لديهم.
ويمكن استخدام هذا، على سبيل المثال:
المستقبل: يمكن أن يكون بمثابة وكيل عكسي لـ Firebolt الحقيقي الذي يعمل على جهاز حقيقي.
(ملاحظة: يحتوي SDK القياسي على نماذج ثابتة مدمجة ولكن لا يمكن التحكم فيها أو توسيعها.)
لاحظ أيضًا أنه نظرًا لأن SDK لا يتحقق من صحة المعلمات في استدعاءات الأساليب، فيمكن لمطوري التطبيقات أيضًا استخدام Mock Firebolt كطريقة للتحقق من صحة استدعاءاتهم لأساليب Firebolt.
يحتوي هذا الريبو على هذه العناصر:
انظر الوثائق.
Mock Firebolt هي خدمة محاكاة عامة جدًا لأي خدمة تعتمد على OpenRPC تقريبًا. يتم التحكم في قائمة مجموعات SDK المحددة التي يدعمها الخادم عند تشغيله من خلال محتويات الملف server/src/.mf.config.json
وأي إشارات سطر أوامر مرتبطة تقدمها عند بدء تشغيل الخادم.
يحتوي الريبو على ملف server/src/.mf.config.SAMPLE.json
وستحتاج إلى نسخ هذا الملف إلى server/src/.mf.config.json
حتى يبدأ الخادم. بمجرد الانتهاء من ذلك، لديك الحرية في تعديل ملف server/src/.mf.config.json
الخاص بك وإضافة حزم SDK أخرى إذا كنت ترغب في ذلك. إذا كان ملف OpenRPC JSON لواجهة برمجة التطبيقات الخاصة بك موجودًا في مكان ما في السحابة أو متاحًا عبر HTTP، فيجب عليك استخدام خاصية url
لـ SDK في هذا الملف بدلاً من خاصية fileName
(والتي تُستخدم فقط لحزم SDK التي يوجد لها "صعب" التبعية" في ملف server/package.json
).
يفترض القسمان التاليان أنك تستخدم ملف .mf.config.json
الجاهز.
يدعم Mock Firebolt حزم Firebolt SDK هذه: الأساسية والإدارة .
يدعم Mock Firebolt أيضًا حزمة SDK $badger لمطوري التطبيقات الذين ينتقلون من $badger إلى Firebolt.
يجب على المطورين الراغبين في تنشيط هذه الوظيفة تمرير علامة سطر الأوامر --moneybadger
عند بدء تشغيل Mock Firebolt. كذلك، يجب عليك استخدام البرنامج النصي activateMockFireboltForBadger.js
داخل تطبيقك وتنفيذه قبل تنفيذ حزمة تطبيقك (التي تتضمن $badger).
ملاحظة: يتطلب NodeJS 16+. إذا كنت تستخدم nvm
، nvm use 16
أو ما شابه.
للتثبيت والتشغيل:
cd <the place you put your code repos>
git clone https://github.com/rdkcentral/mock-firebolt.git /* THIS REPO */
cd mock-firebolt
# To start the mock Firebolt server (if running locally)
cd server
# One-time stuff
cp src/.mf.config.SAMPLE.json src/.mf.config.json
# To install dependencies, clean/create build/ subdirectory, build and upgrade SDK, build source code within this project
npm install
# If you want support for Firebolt Core/Manage SDK
# Run in a separate terminal window/tab, or use '&' to background
npm start
# If you need to use non-standard ports for any reason:
npm start -- --httpPort 3456 --socketPort 9876 --wsSessionServerPort 1234
#If you wish to enable conduit functionality*
npm start -- --conduit
*Note*: Requires Conduit to be running. See the Conduit documentation (./conduit/README.md) for more information.
# If you need to use proxy connection for any reason:
npm start -- --proxy <ip>:<port>
Refer more about proxy mode in ./docs/ProxyMode.md
# To use the control CLI (assuming you're in the top-level directory for this repo)
cd cli
npm install
cd src
node cli.mjs --help
# FUTURE: To use the Chrome browser plugin
Visit chrome://extensions in Chrome
Ensure "Developer mode" is turned on (slider to the right in the top right corner of your browser window)
Click the "Load Unpacked" button (top left corner of browser window)
Navigate to the directory under browser-extensions which contains a manifest.json file and click "Select"
يمكنك الآن الوصول إلى قلب/إدارة OpenRPC من HTTP عن طريق إضافة "url": "https://rdkcentral.github.io/firebolt/requirements/latest/specifications/firebolt-open-rpc.json"
في mf.config.SAMPLE.json
والنسخ إلى mf.config.json
.
ملاحظة: تتضمن هذه الإرشادات حاليًا إنشاء صورة عامل إرساء محليًا بدلاً من تنزيل واحدة من مستودع الصور.
export MF_DOCKER_USER=<yourDockerUsername>
cd <top of repo>
# Create a docker image: Use the appropriate command (most 3rd party app devs should use the first command)
docker build -f Dockerfile.coreSdk . -t $MF_DOCKER_USER/mock-firebolt
docker build -f Dockerfile.allSdks . -t $MF_DOCKER_USER/mock-firebolt
# Confirm your image was created
docker images | grep mock-firebolt
# Run the image, enabling the core/manage OpenRPC (typical)
# Change '$(pwd)' to whatever else you might want to use; this is where your MF .json files live
# NOTE: -p <outside/host port>:<inside/container port>
docker run -d
--name mf
--mount type=bind,source="$(pwd)",target=/usr/src/firebolt/host-files
-p 3333:3333
-p 9998:9998
$MF_DOCKER_USER/mock-firebolt
# Get container ID
docker ps | grep mf
# See logs
docker logs mf
# Enter the container (if necessary/desired)
docker exec -it mf /bin/bash
# Run CLI commands from inside the container (if necessary/desired)
container> cd /usr/src/firebolt/mock-firebolt/cli/src
container> node cli.mjs --help
# Run CLI
# Note the container path for the volume used when running the image is used here to refer to MF .json files
docker exec -it mf mf.sh --help
docker exec -it mf mf.sh --upload /usr/src/firebolt/host-files/<file relative current directory>
# E.g., docker exec -it mf mf.sh --upload /usr/src/firebolt/host-files/cli/examples/account-1.json
# Cleanup when done
docker stop mf
docker rm mf
docker image rm $MF_DOCKER_USER/mock-firebolt (If you want to remove the image, too)
راجع المشكلات المعروفة.
إذا كنت ترغب في المساهمة بالكود في هذا المشروع، فيمكنك القيام بذلك من خلال GitHub عن طريق تفرع المستودع وإرسال طلب سحب.
قبل أن تقبل RDK التعليمات البرمجية الخاصة بك في المشروع، يجب عليك التوقيع على اتفاقية ترخيص المساهمين (CLA) الخاصة بـ RDK.