จาก Kolson25/WebRTC-Multi-Peer-Video-Audio โครงการนี้มีจุดมุ่งหมายที่จะลอง WEBRTC
คุณสามารถลองได้ที่ topaz.h91.co
ในการเรียกใช้โครงการเพียงคัดลอก Docker-compose.yml ในโฟลเดอร์และเรียกใช้คำสั่งต่อไปนี้:
docker-compose up -d
ในการทดสอบคุณต้องไปที่ https: // localhost: 3000
ตรวจสอบให้แน่ใจว่าคุณใช้ SSL (ผ่านทางพร็อกซีย้อนกลับ) หรือคุณจะไม่สามารถเข้าถึงกล้องของคุณได้
สำหรับการพัฒนาฉันใช้ NGROK ซึ่งเชื่อถือได้สำหรับ HTTPS และแม้แต่การทดสอบกับคนระยะไกล :-)
คุณสามารถคัดลอกและตั้งค่า config.json.dist ของคุณเอง สำหรับตอนนี้การกำหนดค่าใช้งานได้กับปลั๊กอินแชทเท่านั้น
ในการสร้างปลั๊กอินคุณจะต้องสร้างไฟล์ JS ด้วยโครงสร้างต่อไปนี้:
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 )
} ,
} ;
} ;การสนับสนุนเป็นฟังก์ชั่นที่ใช้เพื่อตรวจสอบว่าปลั๊กอินควรจัดการกับข้อความหรือไม่ มันจะเป็นประโยชน์ในการตรวจพบว่ามีคนอ้างถึงหรือถ้าสตริงเริ่ม/มีบางสิ่งบางอย่าง
Transform ใช้ชื่อผู้ใช้อวตารข้อความและจะใช้การแปลงหากรองรับการส่งคืนจริง คุณสามารถใช้ formatResponse เพื่อส่งคืนรูปแบบที่ดีหรือคุณสามารถทำได้ด้วยตนเองโดยใช้ไวยากรณ์ต่อไปนี้:
{
"author" : " username " ,
"avatar" : {
"avatar" : " bear " ,
"color" : " red " ,
"image" : " <svg.../> "
},
"message" : " SOME MESSAGE "
}
เพื่อเปิดใช้งานปลั๊กอินให้เพิ่มลงในไฟล์ _plugins.js: ตัวอย่าง:
module . exports = {
me : "./plugins/me.js" ,
giphy : "./plugins/giphy.js" ,
pluginName : "./path/to/file.js"
}PluginName ใช้เพื่อดึงการกำหนดค่าซึ่งเก็บไว้ใน config.json
{
"plugins" : {
"giphy" : {
"api_key" : " GIPHY API KEY "
},
"pluginName" : {
"some_random_config" : " SOME_VALUE "
}
}
} การแบ่งปันหน้าจออยู่ในระหว่างการพัฒนาก่อนเพื่อลองเริ่มแท็บใหม่บนเบราว์เซอร์ของคุณและไปที่ /screen.html ฉันพยายามรวมทั้งสองอย่าง แต่ดูเหมือนจะซับซ้อนเล็กน้อยสำหรับฉันเพราะฉันไม่รู้สึกสับสนกับ JavaScript :)