P2P Editor
P2P Code Editor สำหรับเซสชันการเข้ารหัสสดที่ใช้งานได้ในเบราว์เซอร์
จักรวาล P2P แบบขนานนี้ยังคงมืดมาก สร้างดาวถ้าคุณต้องการทำให้สว่างขึ้น?
สำรวจจักรวาล»
การสาธิตออนไลน์·แผนงาน·มีส่วนร่วม
สารบัญ
- P2P Editor ทำอะไร?
- - ทำไมต้อง P2P?
- ประโยชน์ของ P2P
- เพิ่มความซับซ้อนของการกระจายอย่างเต็มที่
- สถาปัตยกรรม
- การตั้งค่าสภาพแวดล้อม
- - เครื่องมือที่จำเป็น
- การกำหนดค่าสภาพแวดล้อม
- - การดำเนินการของแอปพลิเคชัน
- ✅ทดสอบการดำเนินการ
- การสาธิตสด
- เกี่ยวกับ
- - การบริจาค
- ⚖ใบอนุญาต
P2P Editor ทำอะไร?
P2P Editor เป็นตัวแก้ไขรหัสที่ทำงานในเบราว์เซอร์ซึ่งช่วยให้คุณแบ่งปันเซสชันการเข้ารหัสสด ดูด้วยตัวเองแบ่งปันเซสชั่นใหม่:
- เปิดเซสชัน P2P Editor ในเบราว์เซอร์ของคุณ
- แบ่งปัน URL เซสชันของคุณกับคนอื่น (หรือแม้กระทั่งกับตัวเองในหน้าต่างเบราว์เซอร์อื่น?)
- เริ่มพิมพ์และสนุกกับประสบการณ์จริง!
ฟังก์ชั่นมี จำกัด ในตอนนี้ แต่เรามีแผนงานและปัญหาแรกที่ดีในการทำให้โปรแกรมแก้ไข P2P ยอดเยี่ยม ลองดูที่ส่วนที่มีส่วนร่วมหากคุณต้องการมีส่วนร่วม?
- ทำไมต้อง P2P?
เราได้ลบความจำเป็นในการมีเซิร์ฟเวอร์ส่วนกลางซึ่งการเปลี่ยนแปลงทั้งหมดได้รับการบันทึก การสื่อสารทำจากเพียร์หนึ่ง (ผู้ใช้ที่เชื่อมต่อ) ไปยังอีกคนหนึ่ง โดยการทำเช่นนี้เรามีประโยชน์บางอย่าง แต่เราต้องคำนึงถึงความซับซ้อนที่เพิ่มขึ้น:
ประโยชน์ของ P2P
- การสื่อสารโดยตรง: ลดเวลาแฝงและแบนด์วิดท์
- ไม่มีเซิร์ฟเวอร์: ไม่มีคลาวด์ไม่มีการปรับขนาดไม่มีการปรับใช้ไม่มี DevOps ...
- ไม่มี SaaS:
- ความพร้อมใช้งาน
- ไม่มีการ จำกัด การใช้งาน
- ไม่มีการใช้ข้อมูลของคุณ (เป็นอันตรายหรือไม่เป็นอันตราย)
เพิ่มความซับซ้อนของการกระจายอย่างเต็มที่
- ความสอดคล้องของข้อมูล
- พาร์ติชันเครือข่าย / ทอพอโลยี
- การค้นพบของเพื่อนและการสร้างการเชื่อมต่อ
- การรับรองความถูกต้อง / การอนุญาต
- ความปลอดภัยและความเป็นส่วนตัว
เรามีความสนใจเป็นพิเศษในการพัฒนาแอปพลิเคชัน P2P คุณสามารถอ่านเพิ่มเติมในส่วนเกี่ยวกับ
สถาปัตยกรรม

P2P Editor Building Blocks:
- Code Editor: Ace
- ฐานข้อมูล: ผนวกบันทึกเท่านั้น (hypercore)
- การสื่อสาร: WebRTC RTCDATACHANNEL (WEBRTC-SWARM)
- การค้นพบเพียร์: เซิร์ฟเวอร์การส่งสัญญาณ WebRTC (SignalHub)
- ที่เก็บ: RAM
เวิร์กโฟลว์:
- เพื่อนร่วมงานจะถูกค้นพบผ่านเซิร์ฟเวอร์การส่งสัญญาณ
- สำหรับการเปลี่ยนแปลงแต่ละครั้งที่เกิดขึ้นในตัวแก้ไขเดลต้าที่แสดงถึงการเปลี่ยนแปลงนั้นจะถูกผนวกเข้ากับฐานข้อมูล Hypercore
- ฐานข้อมูล Hypercore กำลังจำลองอย่างต่อเนื่องระหว่างเพื่อนทุกคนผ่าน WEBRTC RTCDatachannel
- เมื่อเพียร์ได้รับเดลต้ามันจะถูกนำไปใช้กับอินสแตนซ์ของตัวแก้ไข
การตั้งค่าสภาพแวดล้อม
- เครื่องมือที่จำเป็น
- ติดตั้ง Docker
- โคลนโครงการนี้:
git clone https://github.com/CodelyTV/p2p-editor - ย้ายไปที่โฟลเดอร์โครงการ:
cd p2p-editor
การกำหนดค่าสภาพแวดล้อม
- คัดลอกตัวแปรสภาพแวดล้อมเริ่มต้น:
cp .env.dist .env - ปรับเปลี่ยนตัวแปรสภาพแวดล้อมหากจำเป็น:
vim .env
- การดำเนินการของแอปพลิเคชัน
- เริ่มแอปพลิเคชันด้วย Docker Compose:
docker-compose up - ไปที่ http: // localhost: 3617
✅ทดสอบการดำเนินการ
- ดำเนินการทดสอบหน่วย:
docker-compose run p2p-editor test
การสาธิตสด
- ในการเริ่มต้นเซสชันรหัสสดใหม่เปิด http://p2p-editor.codely.tv
- แบ่งปัน URL กับผู้ใช้ที่คุณต้องการเข้าร่วมเซสชัน
- เริ่มแก้ไขไฟล์
นั่นคือทั้งหมด! การเปลี่ยนแปลงทั้งหมดจะสะท้อนให้เห็นทันทีในตัวแก้ไข Peers ที่เชื่อมต่อ
การเข้ารหัส P2P มีความสุข!
เกี่ยวกับ
เราเริ่มโครงการนี้ในบริบทของกระบวนการเรียนรู้เกี่ยวกับการสื่อสาร P2P ในสภาพแวดล้อมเว็บ จุดประสงค์ของโปรแกรมแก้ไข P2P คือการใช้ การเรียนรู้โดยการทำ วิธีการที่เราสามารถแบ่งปันการเรียนรู้ของเรากับชุมชนในขณะที่สร้างสิ่งที่มีประโยชน์
เรากำลังเผยแพร่แหล่งข้อมูลการเรียนรู้ทั้งหมดที่เราพบว่ามีประโยชน์ในที่เก็บ P2P ที่ยอดเยี่ยม อย่าลังเลที่จะตรวจสอบและเพิ่มลิงค์ที่คุณชื่นชอบด้วย!
การใช้งานเบื้องต้นของโปรแกรมแก้ไข P2P ขึ้นอยู่กับงาน Mathias Buus ในกรณีที่คุณอ่านสิ่งนี้ขอบคุณมากสำหรับการแบ่งปันทรัพยากรและความรู้มากมาย (libre) มากมาย?
P2P Editor เป็นซอฟต์แวร์ฟรีที่ไม่ได้ผลกำไรที่รองรับโดยการมีส่วนร่วมของผู้ใช้และ CodelyTV
- การบริจาค
คุณสามารถมีส่วนร่วมได้อย่างไร?
- การรายงานข้อบกพร่อง
- ให้ข้อเสนอแนะและแนะนำคุณสมบัติใหม่
- ให้ repo เป็นดารา
- มีส่วนร่วมในการพัฒนาปัญหาการแก้ไขปัญหาที่ระบุว่าเป็น
good first issue - การเพิ่มทรัพยากรการเรียนรู้ไปยังที่เก็บ P2P ที่ยอดเยี่ยม
คุณสามารถรับความคิดเกี่ยวกับแผนงานของโปรแกรมแก้ไข P2P ที่มองไปที่ backlog และ wiki
⚖ใบอนุญาต
ใบอนุญาต MIT (MIT) โปรดดูใบอนุญาตสำหรับข้อมูลเพิ่มเติม