TGViewer
Жабаскрипт (веде Віктор Турський) Жабаскрипт (веде Віктор Турський) @jabascript · 4.72K subscribers
Post #76 3.35K
Что можно сделать с JSON-RPC?
В продолжение к предыдущему посту, решил рассказать про варианты использования JSON-RPC.

mole-rpc - это сама библиотека.
✅ Реализует протокол JSON-RPC, но ничего не знает про сам транспорт.Транспорт можете выбрать любой из существующих (https://www.npmjs.com/search?q=keywords:mole-transport) или можете написать свой.
✅ Транспорты максимально простые и ничего не знают даже про сам JSON-RPC.
✅ Полностью совместима с JSON RPC v2 (включая уведомления и пакетные запросы).
✅. Без внешних зависимостей.
✅ В версии 1.0 существенно обновил документацию и доработал обработку ошибок.

mole-rpc-autotester
Если пишете свой транспорт, то можно использовать этот автотестер, чтобы протестировать всю основную функциональность. Решил вынесли его в отдельный пакет.

Транспорты и варианты использования
Вы можете использовать Mole-RPC, чтобы устроить коммуникацию поверх чего угодно. Вот ряд интересных примеров:

Отправка задачи в веб-воркер
Допустим, вы хотите отправить вычисления в браузере в веб-воркер. Для этого вы используете postMessage и будете отправлять структуру вида {id, method, params}, а в ответ ждать {id, result}. id нужен, чтобы соотнести запрос и ответ, если будет отправлено несколько задач. Так вот, это по сути и есть JSON RPC. Зачем тогда тратить время на свою реализацию, если можно взять готовое решение. mole-rpc-transport-webworker позволяет это сделать в 2 строчки и обработать еще все граничные кейсы.

Коммуникация микросервисов многие ко многим
Обычно для таких случаев вам нужен message broker. MQTT одно из самых легких и достаточно мощных решений. Организовать JSON RPC общение через MQTT можно при помощи mole-rpc-transport-mqtt. Мы используем это решение в продакшене. В документация я постарался описать все детали.

Обход NAT
Допустим, у вас есть сервис в локальной сети и ему нужно посылать команды из интернета. В таком случае можно подключать не клиент к серверу, а сервер к клиенту. Это тоже реализуемо при помощи mole-rpc-transport-ws. Есть пример на Github.

Подключение браузера к серверу через WebSocket
Для этого можно использовать тот же транспорт mole-rpc-transport-ws. Также есть пример на Github.

Напиши свой транспорт :)
На прошлых выходных, for fun, сделал транспорт, которые позволяет использовать telegram, как канал общения между клиентом и сервером (пока в паблик не выкладывал) :).

Если вы пишите свой транспорт и возникли любые вопросы или пожелания - можете писать мне в личку или чат канала 🙂
Telegram Жабаскрипт Yet another JSON RPC Library Что может быть проще JSON-RPC? Мы делаем проект по автоматизации умного дома и нам нужна была JSON RPC библиотека, но в результате оказалось, что ничего подходящего в экосистеме NodeJS найти нельзя. Основная проблема в архитектуре…
More from @jabascript
  1. Oct 9, 2026Hey team! Quick one before the weekend (життєво 🙈): https://www.youtube.com/watch?v=3TNpO…
  2. Sep 30, 2026Ну шо... https://youtu.be/I5_D15gCDDQ
  3. Sep 29, 2026🏎️🏁Забирайте трофеї й знову нові тижневі челенджі 🏎️🏁
  4. Sep 26, 2026"Найкраща мова програмування - англійська" DHH Зараз багатьом підгорає від останньої допов…
  5. Sep 22, 2026Забирайте трофеї й знову нові тижневі челенджі 🏎️🏁
  6. Sep 14, 2026Втомилися чекати на дашборди? Не знаєте, як тестувати AI-агентів? Або цікавитесь, як працю…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →