@nqounetです。
JSON::RPC::SpecというモジュールでCPAN Authorになりました。
JSON::RPC::Spec
JSON::RPC::Specは、JSON-RPCの仕様でJSONをやりとりできるモジュールです。
RPCというのは、Remote Procedure Call
のことで、ネットワーク上の別のマシンで処理を実行する手続きのことを言います。
JSON-RPCは、そのRPCをJSONの形式で可能にした書き方の規格です。
RPCなので、ネットワーク越しの通信を想定しているのですが、その変換部分だけを実装したのが、このモジュールです。
こんな感じで使えます。
|
|
狙いはWebSocket
前の記事でも書いたとおり、WebSocketでの通信時に使えるフレームワーク的なものが欲しかったのですが、JSON-RPCは通信についても含まれるので、単純にWebSocketで使うことはできません。
RPCは送信側(client)と受信側(server)があって成立するようになっているので、双方向の通信には合いませんが、method
とparams
を用いる仕組みとして利用するのは可能だろうと思いました。
効率的には、オレオレ実装の方が明らかに良いのですが、汎用性に欠けてしまうので、リモート要素がなくても規格に沿うのは良いことだと思います。
そんなわけで、今はWebSocketで使えるようなモジュールを作っています。
如何でしょうか?