Basé sur Kolson25 / webrtc-multiti-peer-video-Audio, ce projet vise à essayer WebBrTC.
Vous pouvez l'essayer sur topaz.h91.co
Pour exécuter le projet, copiez simplement le docker-compose.yml dans un dossier et exécutez la commande suivante:
docker-compose up -d
Pour le tester, vous devez vous rendre sur https: // localhost: 3000.
Assurez-vous que vous utilisez SSL (via le proxy inversé par exemple) ou vous ne pourrez pas avoir accès à votre appareil photo.
Pour le développement, j'ai utilisé Ngrok qui est fiable pour HTTPS et même les tests avec des personnes éloignées :-)
Vous pouvez copier et configurer votre propre config.json.dist. Pour l'instant, la configuration fonctionne uniquement avec les plugins de chat.
Pour créer un plugin, vous devrez créer un fichier JS avec la structure suivante:
module . exports = function ( config , formatResponse ) {
return {
supports ( username , avatar , message ) {
// return true if the plugin should be used.
// for example : return message.startsWith("/hello")
return true
} ,
transform ( username , avatar , message ) {
if ( config . some_random_config == "SOME VALUE" ) {
console . log ( "do something" )
}
// should return a formatResponse in order to be processable.
return formatResponse ( message , avatar , message )
} ,
} ;
} ;Les supports sont une fonction utilisée pour vérifier si le plugin doit manipuler le message. Il peut être utile de détecter que quelqu'un a été cité, ou si la chaîne démarre / contient quelque chose.
Transform prend un nom d'utilisateur, un avatar, un message et appliquera la transformation si les supports renvoient true. Vous pouvez utiliser le formatResponse pour renvoyer le bon format ou vous pouvez faire manuellement en utilisant la syntaxe suivante:
{
"author" : " username " ,
"avatar" : {
"avatar" : " bear " ,
"color" : " red " ,
"image" : " <svg.../> "
},
"message" : " SOME MESSAGE "
}
Afin d'activer un plugin, ajoutez-le au fichier _plugins.js: exemple:
module . exports = {
me : "./plugins/me.js" ,
giphy : "./plugins/giphy.js" ,
pluginName : "./path/to/file.js"
}Le pluginname est utilisé pour récupérer la configuration qui est stockée dans config.json.
{
"plugins" : {
"giphy" : {
"api_key" : " GIPHY API KEY "
},
"pluginName" : {
"some_random_config" : " SOME_VALUE "
}
}
} Le partage d'écran est en début de développement, pour l'essayer, commencez un nouvel onglet sur votre navigateur et allez sur /screen.html J'ai essayé de fusionner les deux, mais cela semble un peu compliqué pour moi, car je ne me sens pas confortable avec JavaScript :).