java-Kcp
README เป็นภาษาอังกฤษ
kcp ใช้งานตามเวอร์ชัน netty (รวมถึงการใช้งานฟังก์ชัน fec)
KCP เป็นโปรโตคอลที่รวดเร็วและเชื่อถือได้ (rudp) ที่ใช้ UDP สามารถลดความล่าช้าโดยเฉลี่ยได้ 30%-40% และลดความล่าช้าสูงสุดได้ 3 เท่า โดยมีต้นทุนการสิ้นเปลืองแบนด์วิธ 10%-20% มากกว่า TCP
ที่อยู่มาเวน:
< dependency >
< groupId >com.github.l42111996</ groupId >
< artifactId >kcp-base</ artifactId >
< version >1.6</ version >
</ dependency >
วิธีการใช้งานและพารามิเตอร์
- ตัวอย่างฝั่งเซิร์ฟเวอร์
- อินสแตนซ์ไคลเอนต์
- แนวทางปฏิบัติที่ดีที่สุด
- ข้อมูลมากมาย
- เข้ากันได้กับ c#, เซิร์ฟเวอร์ java, ไคลเอนต์ c#
- ปัญหาที่พบ
- ผลการทดสอบประสิทธิภาพ
- เข้ากันได้กับ kcp-go รวมถึงความเข้ากันได้ของ fec
ความเข้ากันได้:
- เข้ากันได้กับรุ่น c kcp
- fec ได้รับการปรับใช้ตามhttps://github.com/Backblaze/JavaReedSolomon
- เวอร์ชัน C# ที่เข้ากันได้อย่างสมบูรณ์แบบ https://github.com/l42111996/csharp-kcp เพื่อสร้างไลบรารีเครือข่ายส่วนหน้าและส่วนหลังของเกมอย่างรวดเร็ว
ความมั่นคง:
เป็นเวอร์ชันเสถียรแล้ว ตามสถิติ มีการเข้าถึงโครงการออนไลน์ 5 ถึง 10 โครงการ รวมถึงผลิตภัณฑ์จาก Tencent, Kuaishou และบริษัทอื่นๆ
การเพิ่มประสิทธิภาพ:
- ขับเคลื่อนด้วยเหตุการณ์ ใช้ประโยชน์จากมัลติคอร์อย่างเต็มที่
- เพิ่มประสิทธิภาพตรรกะของ fastack และลดการรับส่งข้อมูลลง 10%
- ปรับฟังก์ชั่นการตรวจสอบให้เหมาะสม
- ปรับตัววนซ้ำคอลเลกชันให้เหมาะสม
- มี fec เพื่อลดความล่าช้า
- พร้อมเช็ค crc32
- ใช้วงล้อเวลาเพื่อปรับการใช้งาน CPU ของการเชื่อมต่อจำนวนมากให้เหมาะสม
- ใช้ directbuf และ object pool ไม่มีแรงกดดัน gc
- เพิ่มการใช้ Conv หรือ ip+port เพื่อกำหนดเอกลักษณ์ของช่องสัญญาณ เกมแนะนำให้ใช้ข้อมูล Conv และ TCP
- เมื่อเพิ่มการใช้งานเกม การเปลี่ยน 4G เป็น wifi และการเปลี่ยนแปลง IP การส่งออกอื่นๆ จะไม่ทำให้การเชื่อมต่อถูกตัดการเชื่อมต่อ
ข้อมูลที่เกี่ยวข้อง
- https://github.com/skywind3000/kcp kcp เวอร์ชัน c ดั้งเดิม
- https://github.com/xtaci/kcp-go go เวอร์ชัน kcp พร้อมการเพิ่มประสิทธิภาพมากมาย
- https://github.com/Backblaze/JavaReedSolomon java versionfec
- https://github.com/LMAX-Exchange/disruptor ไลบรารีการส่งข้อความระหว่างเธรดประสิทธิภาพสูง
- https://github.com/JCTools/JCTools ไลบรารีการทำงานพร้อมกันประสิทธิภาพสูง
- https://github.com/szhnet/kcp-netty เวอร์ชัน java ของ kcp
- https://github.com/l42111996/csharp-kcp เวอร์ชัน C# kcp ที่ใช้ dotNetty เข้ากันได้อย่างสมบูรณ์แบบ
สื่อสาร
ถาม:526167774