Demostración: https://chat.gise.at
Los caracteres después del hashtag definen la habitación, si no se selecciona el hashtag, se muestra el diálogo Crear habitación.
Por ejemplo, todos los visitantes con un enlace a https://chat.gise.at/#roulette-chat entran en una habitación y pueden comunicarse entre sí allí.
Por lo tanto, simplemente reenvíe la URL actual para invitar a otros.
Este chat de video está hecho para instalarlo en un propio servidor web. Para señalar, puede usar un proyecto de Firebase gratuito o usar la base del servidor de chat en Node.js.
Código de carga y dependencias en su entorno de desarrollo local:
git clone https://github.com/vgiselbrecht/gise-video-chat.git gise-video-chat
cd gise-video-chat
npm install
Linux
cp src/config.tmp.json src/config.json
cp src/assets/sass/_custom.tmp.scss src/assets/sass/_custom.scss
Windows
copy srcconfig.tmp.json srcconfig.json
copy srcassetssass_custom.tmp.scss srcassetssass_custom.scss
La configuración completa se puede hacer en el archivo src/config.json.
Lo más importante es el "intercambio de servicios" para la señalización. Hay dos formas de señalización, sobre el servidor de chat de base Node.js o un proyecto gratuito de Firebase.
En "ExchangeServices/Service" se especifica si se usa el servidor de chat (servidor de chat) o Firebase (Firebase).
Para la conexión al servidor de chat, debe instalar el servidor de chat en un propio servidor. En "ExchangeServices/Chat-Server/Host", debe agregar el URI del socket web a este servidor.
{
"exchangeServices" : {
"service" : " chat-server " ,
"chat-server" : {
"host" : " wss://chat-server.example.com "
}
},
}Debe crear un proyecto gratuito de Firebase con autenticación anónima y base de datos en tiempo real. La configuración de Firebase debe depositarse en "ExchangeServices/Firebase".
{
"exchangeServices" : {
"service" : " firebase " ,
"firebase" : {
"apiKey" : " " ,
"authDomain" : " " ,
"databaseURL" : " " ,
"projectId" : " " ,
"storageBucket" : " " ,
"messagingSenderId" : " " ,
"appId" : " " ,
"measurementId" : " "
}
},
}El servidor STUN/Turn adicional también se puede agregar en Communication/WebRTC/ICESERVERS. Para usar este chat de video detrás de algunos firewalls y nats, necesita un servidor de giro.
Lista de servidor gratuito de aturdimiento y giro
Con ciertos sistemas (por ejemplo, Twilio) es necesario que los Interservadores cambien con frecuencia. Por lo tanto, es posible cargar la configuración de ICESServer dinámicamente con Communication/WEBRTC/ICESERVERSFROMURL. En la URL dada, se solicita una devolución en formato JSON de la misma manera que con el parámetro ICESSERVERS ([{"URLS": ""}, ...]).
Algunas características se pueden activar individualmente por instalación.
{
"meta" : {
"title" : " Video Chat " ,
"description" : " Open-Source video chat based on WebRTC and Firebase. " ,
"keywords" : " chat, webrtc, video-call, video-chat " ,
"image" : " "
},
"privacy" : {
"firebaseAnalytics" : 0 ,
"imprint" : " " ,
"gdpr" : " "
},
"exchangeServices" : {
"service" : " chat-server " ,
"chat-server" : {
"host" : " wss:// "
}
},
"communication" : {
"webrtc" : {
"iceServers" : [
{ "urls" : " stun:stun.services.mozilla.com " },
{ "urls" : " stun:stun.l.google.com:19302 " }
],
"iceServersFromUrl" : " "
}
},
"features" : {
"soundEffects" : false ,
"mutePartner" : true ,
"soundOffPartner" : true
}
}Puede agregar sus adaptaciones de diseño SASS al archivo "SRC/Assets/Sass/_Custom.SCSS". La forma más fácil es sobrescribir las variables de _settings.scss aquí. Este archivo permanece incluso después de una actualización.
grunt deploy
Agregue contenido del directorio DIST a la raíz del documento de su servidor web local.
grunt deploy --target=production
Copie el contenido del directorio DIST a su servidor web.
grunt watch
Cambie el código compilado en el directorio DIST después de guardar un archivo de proyecto. Idealmente, el directorio DIST es la raíz del documento de un servidor web local como Nginx o Apache.
Puedes patrocinarme a través del patrocinio de GitHub.
Como reconocimiento, estaría encantado de recibir una estrella.
Las sugerencias y las solicitudes de extensiones siempre son bienvenidas.
Licencia de Apache 2.0