Hi Alessandro,
That all sounds great. I also look forward to your talk. I hope it will be recorded.
When you say "wrap janus instances in scalable virtual event platforms", do you intend janode to be a front-end to Janus for the app communication layer?
You say it works in the browser but is not (yet) meant to replace janus.js
Would you mind explaining what are the parts that are missing for it to replace janus.js?
Is it a cross-browser compatibility layer and/or other things that are missing?
I would love to see a more contemporary api. I'm happy to contribute if needed.
Please excuse the peanut-gallery style comment, but the thing I see making the janus.js weird in the browser is the Janus-side differentiation between sync and async messages. Both are async in the colloquial sense of the term, but Janus async messages mean that you have these global event handlers for only certain kinds of
messages where you send the message on one channel, but have to observe
on another (global) channel.
I wonder why all network messages aren't "sync" in Janus. By that I just mean that the "id" that is sent in the message is later returned when done.
It would be much cleaner IMO to have all message be in the style of:
plugHandle.send({...})
.then(() => {...})
.catch(errHandle)
When I look at the C code (for the audio plugin at least), there doesn't seem to be a reason for that differentiation. The reply for messages could all include the initial "id" that is sent.
I'm guessing this is maybe a remnant of http polling only communication.
best -August.