Skip to content

Introduction

Tigran Sargsyan edited this page Sep 22, 2020 · 6 revisions

Introduction

Sonder is a Java library providing TCP client-server asynchronous communication on high level abstraction. It's implemented over NIO encapsulating low-level work of selectors and some byte-level packet protocol.

The entire communcation work is shown in below image:


.

Base Protcol

This is specific socket layer byte protocol, which doesn't matter for you (a user).


Note: The protocol does not contain any Java-specific stuff, so can be implemented a client library in any language. At the moment, only java to java communication is possible.


Custom Protcols

On the next there are user-specified custom protocols, which must be defined in each end for properly communication. There can be several protocols, and each packet contains information about which protocol should process it.
On the diagramm you can see, that server supports three protocols for incoming/outgoing packets, and clients can communicate with server only with that protocols, but it is not mandatory that client must be support all of that protocols.

Communication

The server and the clients are equal in the communication, but you can define your protocol as you want and in different ways on each end.

Next -> Configuration

Clone this wiki locally