|
janus_plugin * | create (void) |
|
int | janus_textroom_init (janus_callbacks *callback, const char *config_path) |
|
void | janus_textroom_destroy (void) |
|
int | janus_textroom_get_api_compatibility (void) |
|
int | janus_textroom_get_version (void) |
|
const char * | janus_textroom_get_version_string (void) |
|
const char * | janus_textroom_get_description (void) |
|
const char * | janus_textroom_get_name (void) |
|
const char * | janus_textroom_get_author (void) |
|
const char * | janus_textroom_get_package (void) |
|
void | janus_textroom_create_session (janus_plugin_session *handle, int *error) |
|
struct janus_plugin_result * | janus_textroom_handle_message (janus_plugin_session *handle, char *transaction, json_t *message, json_t *jsep) |
|
void | janus_textroom_setup_media (janus_plugin_session *handle) |
|
void | janus_textroom_incoming_rtp (janus_plugin_session *handle, int video, char *buf, int len) |
|
void | janus_textroom_incoming_rtcp (janus_plugin_session *handle, int video, char *buf, int len) |
|
void | janus_textroom_incoming_data (janus_plugin_session *handle, char *buf, int len) |
|
void | janus_textroom_slow_link (janus_plugin_session *handle, int uplink, int video) |
|
void | janus_textroom_hangup_media (janus_plugin_session *handle) |
|
void | janus_textroom_destroy_session (janus_plugin_session *handle, int *error) |
|
json_t * | janus_textroom_query_session (janus_plugin_session *handle) |
|
janus_plugin_result * | janus_textroom_handle_incoming_request (janus_plugin_session *handle, char *text, json_t *json, gboolean internal) |
|
Janus TextRoom plugin.
- Author
- Lorenzo Miniero loren.nosp@m.zo@m.nosp@m.eetec.nosp@m.ho.c.nosp@m.om
- Copyright
- GNU General Public License v3
This is a plugin implementing a DataChannel only text room. As such, it does NOT support or negotiate audio or video, but only data channels, in order to provide text broadcasting features. The plugin allows users to join multiple text-only rooms via a single PeerConnection. Users can send messages either to a room in general (broadcasting), or to individual users (whispers). This plugin can be used within the context of any application that needs real-time text broadcasting (e.g., chatrooms, but not only).
The only message that is typically sent to the plugin through the Janus API is a "setup" message, by which the user initializes the PeerConnection itself. Apart from that, all other messages can be exchanged directly via Data Channels. For room management purposes, though, requests like "create", "edit", "destroy", "list" and "exists" are available through the Janus API as well: notice that in this case you'll have to use "request" and not "textroom" as the name of the request.
Each room can also be configured with an HTTP backend to contact for incoming messages. If configured, messages addressed to that room will also be forwarded, by means of an HTTP POST, to the specified address. Notice that this will only work if libcurl was available when configuring and installing Janus.
- Note
- This plugin is only meant to showcase what you can do with data channels involving multiple participants at the same time. While functional, it's not inherently better or faster than doing the same thing using the Janus API messaging itself (e.g., as part of the plugin API messaging) or using existing instant messaging protocols (e.g., Jabber). In fact, while data channels are being used, you're still going through a server, so it's not really peer-to-peer. That said, the plugin can be useful if you don't plan to use any other infrastructure than Janus, and yet you also want to have text-based communication (e.g., to add a chatroom to an audio or video conference).
Notice that, in general, all users can create rooms. If you want to limit this functionality, you can configure an admin admin_key
in the plugin settings. When configured, only "create" requests that include the correct admin_key
value in an "admin_key" property will succeed, and will be rejected otherwise.
Text Room API
TBD.
plugins