Spec-Zone.ru › Elisp

Процессные соединения JSONRPC

Для удобства, библиотека jsonrpc поставляется со встроенной реализацией транспорта jsonrpc-process-connection, который может общаться с локальными подпроцессами (используя стандартный ввод и стандартный вывод); или хостами TCP (используя сокеты); или любым другим удаленным конечным пунктом, который может представлять объект процесса Emacs (см. Процессы).

Используя этот транспорт, сообщения JSONRPC кодируются в проводе как обычный текст и предваряются некоторыми основными заголовками в стиле HTTP, такими как «Content-Length».

Пример приложения, использующего эту схему транспорта поверх JSONRPC, см. в Протоколе языка сервера.

Вместе с обязательными :request-dispatcher и :notification-dispatcher параметрами инициализации, пользователи класса jsonrpc-process-connection должны передать следующие параметры инициализации в виде пар «ключ-значение» классу make-instance:

:process

Значение должно быть живым объектом процесса или функцией без аргументов, производящей такой объект. Если передается объект процесса, ожидается, что объект содержит предварительно установленное соединение; в противном случае, функция вызывается сразу после создания объекта.

:on-shutdown

Значение должно быть функцией с одним аргументом, объектом jsonrpc-process-connection. Функция вызывается после удаления базового объекта процесса (либо преднамеренно классом jsonrpc-shutdown, либо непредвиденно из-за какой-либо внешней причины).

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Process_002dbased-JSONRPC-connections.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API