io.Connect Desktop provides a wide variety of Interop services – Request/Response, Streaming, Shared Contexts, Channels. The rich Interop functionality of io.Connect Desktop offers you a wide choice of solution options when developing your apps. Each Interop service is best applied in certain scenarios.
If you have an app with existing functionalities which you want to offer to other apps within io.Connect Desktop, you can use the Request/Response Interop API. Your app can register an Interop method which invokes the respective functionality of your app. Other interop-enabled apps can discover this Interop method and invoke it in order to use the said functionality.
If you need to stream or capture real-time data, you can use special Interop methods for publishing or subscribing to data streams – just like with Request/Response, an app can register a method for publishing a stream and another app can invoke that method to subscribe for the stream and receive the published data.
If you need to synchronize data across multiple apps (e.g., the user clicks on a client name in a client list and you want all other connected apps to automatically show the relevant data for that client), you can achieve this by using Shared Contexts. A Shared Context is an object holding information in the form of key/value pairs. An app can create, set or update a context object and can also subscribe for changes to that context object in order to react accordingly to context changes and update its information.
You can use the Channels API when you need to offer the user an UI for choosing which apps should be grouped together to synchronize data between each other. Channels are based on Shared Contexts and are UI driven. The user can select from any number of defined color Channels and assign any number and combination of apps to a certain Channel. This way, when the user changes a selection, or updates information in one app, all other apps will synchronize their data according to the user action.
The Pub/Sub API offers only limited Interop functionality – publishing and subscribing on topics, basic targeting and no streaming. The Pub/Sub support was added to io.Connect Desktop only for porting apps already using a pub/sub technology. We recommend using all other higher level Interop services offered by io.Connect Desktop instead of Pub/Sub.