NAME

Riap::TCP - Riap over TCP

VERSION

version 1.1.14

DESCRIPTION

Riap::TCP is a simpler alternative to Riap::HTTP. It supports less features (currently only supports JSON, no encryption, no authentication, no sending of logging messages). It is suitable for localhost/localnet communication (e.g. between processes of different languages). For public-facing service, Riap::HTTP is more recommended.

Client first sends a request line of the following format:

"J" <size> <CRLF>

That is, the letter J (for JSON) and size of subsequent request body in bytes. Client then sends the Riap request in JSON, followed by CRLF.

Server replies by first sending a similar line:

"J" <size> <CRLF>

followed by enveloped result encoded in JSON and a single <CRLF>. The next request can then be sent by client.

If client/server sends an invalid request/response line, the connection can be closed.

PROTOCOL VERSION

1.1

ABSTRACT

This document specifies using Riap directly over TCP, or Riap::TCP for short.

EXAMPLES

Below are some examples of what is sent and received on the wire.

J9
{"v":0.9}
J40
[502,"Protocol version not implemented"]

J1
{
J20
[400,"Invalid JSON"]

J57
{"action":"call","uri":"/Math/mult","args":{"a":2,"b":3}}
J12
[200,"OK",6]

J44
{"v":1.1,"action":"info","uri":"/Math/mult"}
J57
[200,"OK",{"v":1.1,"type":"function","uri":"/Math/mult"}]

FAQ

SEE ALSO

Riap, Riap::TCP

AUTHOR

Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Steven Haryanto.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.