Mock Firebolt позволяет разработчику приложения, создающему приложение, совместимое с Firebolt, «искусственно» заставлять вызовы Firebolt SDK возвращать ответы, отличные от тех, которые возвращает настоящий 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 для вашего API находится где-то в облаке или иным образом доступен через HTTP, вам следует использовать свойство url
для SDK в этом файле, а не свойство fileName
(которое используется только для SDK, для которых существует «жесткое» зависимость» в файле server/package.json
).
В следующих двух разделах предполагается, что вы используете готовый файл .mf.config.json
.
Mock Firebolt поддерживает следующие SDK Firebolt: ядро и управление .
Mock Firebolt также поддерживает $badger SDK для разработчиков приложений, переходящих с $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
.
ПРИМЕЧАНИЕ. В настоящее время эти инструкции подразумевают создание образа Docker локально, а не загрузку его из репозитория изображений.
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 примет ваш код в проект, вы должны подписать Лицензионное соглашение участника RDK (CLA).