Next: , Previous: , Up: JSONRPC   [Contents][Index]


33.30.2 プロセスベースのJSONRPC接続

jsonrpcライブラリーには利便性のために、ローカルサブプロセス(標準入力と標準出力を使用)やTCPホスト(ソケットを使用)、またはEmacsのプロセスオブジェクトが表現可能な他のリモートのエンドポイント(Processesを参照)と対話可能なビルトインのjsonrpc-process-connectionトランスポート実装が付属しています。

このトランスポートを使用することによりJSONRPCメッセージはワイヤー上にプレーンテキストとしてエンコードされて、“Content-Length”のように何らかの基本的なHTTPスタイルのエンベロープヘッダーが前置されます。

このJSONRPC最上層のトランスポートスキームを使用したアプリケーションの例は、Language Server Protocolを参照してください。

:request-dispatcher:notification-dispatcherという必須の初期化引数(initarg)に加えて、jsonrpc-process-connectionクラスのユーザーはmake-instanceへのキーワード/値ペアとして以下の初期化引数を渡す必要があります:

:process

値は生きたプロセスオブジェクト、またはそのようなオブジェクトを生成する引数のない関数でなければならない。プロセスオブジェクトを渡された場合には、そのオブジェクトには事前に確立された接続が含まれていることが期待される。それ以外の場合には、オブジェクトの作成直後に関数が呼び出される。

:on-shutdown

値はjsonrpc-process-connectionオブジェクトを単一の引数とする関数でなければならない。この関数は背後にあるプロセスオブジェクトの削除(jsonrpc-shutdownによる故意の削除、または何らかの外部要因による予期せぬ削除)の後に呼び出される。