Skip to content
This repository has been archived by the owner on Jul 12, 2023. It is now read-only.

[enhancement] extending kms-jsonrpc with high level bindings #590

Open
3 tasks done
dpocock opened this issue Apr 14, 2021 · 3 comments
Open
3 tasks done

[enhancement] extending kms-jsonrpc with high level bindings #590

dpocock opened this issue Apr 14, 2021 · 3 comments
Projects

Comments

@dpocock
Copy link

dpocock commented Apr 14, 2021

Prerequisites

These are MANDATORY, otherwise the issue will be automatically closed.

Issue description

kms-jsonrpc provides a low level way to handle JSON RPC messages from C++ code.

It would be very useful to have a higher level API, for example, with a C++ class or method representing each type of message.

Context

I am planning an open source integration from reSIProcate to Kurento
https://github.com/resiprocate/resiprocate/tree/master/apps/reConServer

I could create the high level API myself and submit it in a pull request but it would be useful to know if anybody else did this in another project that can be copied, if anybody else is already working on it, if you have ideas about how it should be developed, etc.

How to reproduce?

n/a

Expected & current behavior

Current behavior, from unit test:

client.sendRequest ("echo", params, ...

High-level API:

result = client.echo(params, ...

(Optional) Possible solution

There are two ways to go about this:

  • creating the high level API classes in the same repository, delivering them in the same library package, this appears to be the ideal approach to ensure API and ABI compatibility
  • creating the classes in a standalone repository

Info about your environment

n/a

About Kurento Media Server

About your Application Server

  • Programming Language: n/a
  • Kurento Client version: n/a

About end-user clients

  • Device(s): n/a
  • OS(es): n/a
  • Browser(s): n/a

Run these commands

NA

cat /etc/lsb-release
kurento-media-server --version
dpkg -l | grep -Pi 'kurento|kms-|gst.*1.5|nice'
@github-actions
Copy link

Hello @dpocock! 👋 we're sorry you found a bug... so first of all, thank you very much for reporting it.

To know about progress, check in Triage. All issues are considered Backlog Candidates until work priorities align and the issue is selected for development. It will then become part of our official Backlog.

@j1elo j1elo added this to Backlog Candidates in Triage Apr 14, 2021
@j1elo
Copy link
Member

j1elo commented Apr 14, 2021

The kms-jsonrpc module is just a very thin adaptation layer over the jsoncpp library (of which Kurento maintains a fork). I'm not sure what is exactly done in it, because the module "Just Works ™" so it hasn't been touched for several years.

In any case I'm not sure of the usefulness of adding a sugar layer on top of sendRequest(). For one, KMS does never use this method (outside tests), because it only receives and processes requests, but doesn't send them. All the JSON-RPC clients in the project are those for Java, and JavaScript/Node.js platforms (and those are the ones sending requests to KMS).

It might have sense if you want to build applications on top of the Kurento Protocol, but otherwise I don't see Kurento (as project) benefiting from it. Maybe a bit more context might help me understand it better, what is the purpose of this proposed layer?

@dpocock
Copy link
Author

dpocock commented Apr 14, 2021

What I'm describing is like the Java or JavaScript client API but written in C++

[our C++ app][ C++ high-level client][kms-jsonrpc] <-- socket --> [Kurento Media Server]

Is anybody else already working on something like that? Do any other C/C++ applications use Kurento?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Triage
Backlog Candidates
Development

No branches or pull requests

2 participants