mirror of https://github.com/vector-im/riot-web
Update jitsi-dev.md
parent
6f04841e4b
commit
bbd1974eb4
|
@ -1,10 +1,10 @@
|
||||||
# Jitsi wrapper developer docs
|
# Jitsi wrapper developer docs
|
||||||
|
|
||||||
*If you're looking for information on how to set up Jitsi in your Riot, see
|
*If you're looking for information on how to set up Jitsi in your Element, see
|
||||||
[jitsi.md](./jitsi.md) instead.*
|
[jitsi.md](./jitsi.md) instead.*
|
||||||
|
|
||||||
These docs are for developers wondering how the different conference buttons work
|
These docs are for developers wondering how the different conference buttons work
|
||||||
within Riot. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
|
within Element. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
|
||||||
|
|
||||||
## Brief introduction to widgets
|
## Brief introduction to widgets
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ in the react-sdk), though for some widgets special integration can be done. v2 w
|
||||||
have a `data` object which helps achieve that special integration, though v1 widgets
|
have a `data` object which helps achieve that special integration, though v1 widgets
|
||||||
are best iframed and left alone.
|
are best iframed and left alone.
|
||||||
|
|
||||||
Widgets have a `postMessage` API they can use to interact with Riot, which also allows
|
Widgets have a `postMessage` API they can use to interact with Element, which also allows
|
||||||
Riot to interact with them. Typically this is most used by the sticker picker (an
|
Element to interact with them. Typically this is most used by the sticker picker (an
|
||||||
account-level widget), though widgets like the Jitsi widget will request permissions to
|
account-level widget), though widgets like the Jitsi widget will request permissions to
|
||||||
get 'stuck' into the room list during a conference.
|
get 'stuck' into the room list during a conference.
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Widgets can be added with the `/addwidget <url>` command.
|
||||||
|
|
||||||
Integration managers (like Scalar and Dimension) are accessible via the 4 squares in
|
Integration managers (like Scalar and Dimension) are accessible via the 4 squares in
|
||||||
the top right of the room and provide a simple UI over top of bridges, bots, and other
|
the top right of the room and provide a simple UI over top of bridges, bots, and other
|
||||||
stuff to plug into a room. They are a separate service to Riot and are thus iframed
|
stuff to plug into a room. They are a separate service to Element and are thus iframed
|
||||||
in a dialog as well. They also have a `postMessage` API they can use to interact with
|
in a dialog as well. They also have a `postMessage` API they can use to interact with
|
||||||
the client to create things like widgets, give permissions to bridges, and generally
|
the client to create things like widgets, give permissions to bridges, and generally
|
||||||
set everything up for the integration the user is working with.
|
set everything up for the integration the user is working with.
|
||||||
|
@ -51,7 +51,7 @@ over `postMessage`, even if they aren't going to be using the widget APIs).
|
||||||
|
|
||||||
Widgets added with the `/addwidget` command will *not* be wrapped as they are not going
|
Widgets added with the `/addwidget` command will *not* be wrapped as they are not going
|
||||||
through an integration manager. The widgets themselves *should* also work outside of
|
through an integration manager. The widgets themselves *should* also work outside of
|
||||||
Riot. Widgets currently have a "pop out" button which opens them in a new tab and
|
Element. Widgets currently have a "pop out" button which opens them in a new tab and
|
||||||
therefore have no connection back to Riot.
|
therefore have no connection back to Riot.
|
||||||
|
|
||||||
## Jitsi widgets from integration managers
|
## Jitsi widgets from integration managers
|
||||||
|
@ -65,27 +65,27 @@ server they specified in their config.json - this is expected.
|
||||||
Some integration managers allow the user to change the conference name while others
|
Some integration managers allow the user to change the conference name while others
|
||||||
will generate one for the user.
|
will generate one for the user.
|
||||||
|
|
||||||
## Jitsi widgets generated by Riot itself
|
## Jitsi widgets generated by Element itself
|
||||||
|
|
||||||
When the user clicks on the call buttons by the composer, the integration manager is
|
When the user clicks on the call buttons by the composer, the integration manager is
|
||||||
not involved in the slightest. Instead, Riot itself generates a widget event, this time
|
not involved in the slightest. Instead, Element itself generates a widget event, this time
|
||||||
using the config.json parameters, and publishes that to the room. If there's only two
|
using the config.json parameters, and publishes that to the room. If there's only two
|
||||||
people in the room, a plain WebRTC call is made instead of using a widget at all - these
|
people in the room, a plain WebRTC call is made instead of using a widget at all - these
|
||||||
are defined in the Matrix specification.
|
are defined in the Matrix specification.
|
||||||
|
|
||||||
The Jitsi widget created by Riot uses a local `jitsi.html` wrapper (or one hosted by
|
The Jitsi widget created by Element uses a local `jitsi.html` wrapper (or one hosted by
|
||||||
`https://riot.im/app` for desktop users or those on non-https domains) as the widget
|
`https://app.element.io` for desktop users or those on non-https domains) as the widget
|
||||||
`url`. The wrapper has some basic functionality for talking to Riot to ensure the
|
`url`. The wrapper has some basic functionality for talking to Element to ensure the
|
||||||
required `postMessage` calls are fulfilled.
|
required `postMessage` calls are fulfilled.
|
||||||
|
|
||||||
**Note**: Per [jitsi.md](./jitsi.md) the `preferredDomain` can also come from the server's
|
**Note**: Per [jitsi.md](./jitsi.md) the `preferredDomain` can also come from the server's
|
||||||
client .well-known data.
|
client .well-known data.
|
||||||
|
|
||||||
## The Jitsi wrapper in Riot
|
## The Jitsi wrapper in Element
|
||||||
|
|
||||||
Whenever Riot sees a Jitsi widget, it ditches the `url` and instead replaces it with
|
Whenever Element sees a Jitsi widget, it ditches the `url` and instead replaces it with
|
||||||
its local wrapper, much like what it would do when creating a widget. However, instead
|
its local wrapper, much like what it would do when creating a widget. However, instead
|
||||||
of using one from riot.im/app, it will use one local to the client instead.
|
of using one from [app.element.io](https://app.element.io), it will use one local to the client instead.
|
||||||
|
|
||||||
The wrapper is used to provide a consistent experience to users, as well as being faster
|
The wrapper is used to provide a consistent experience to users, as well as being faster
|
||||||
and less risky to load. The local wrapper URL is populated with the conference information
|
and less risky to load. The local wrapper URL is populated with the conference information
|
||||||
|
|
Loading…
Reference in New Issue