แบตเตอรี่รวมลังเครือข่ายสำหรับเกม
[dependencies]
netstack = "0.3.0"
เอกสาร (อยู่ระหว่างดำเนินการ)
หากคุณมีข้อเสนอแนะ ขาดคุณสมบัติ หรือเพียงต้องการติดต่อ คุณสามารถเปิดปัญหาในพื้นที่เก็บข้อมูลนี้หรือติดต่อฉันได้ทาง Twitter
หากต้องการใช้ netstack ในการผลิตอย่างมีประสิทธิภาพ คุณต้องมีช่องทางที่ปลอดภัยเพื่อแลกเปลี่ยนความลับเริ่มต้นและโทเค็นการเชื่อมต่อ ขอแนะนำให้ใช้ https สำหรับสิ่งนี้ แต่ก็ขึ้นอยู่กับคุณ ตัวอย่างใช้เซิร์ฟเวอร์ http
( ☑️ หมายถึง ดำเนินการแล้ว ? หมายถึง วางแผนไว้ หรือ อยู่ระหว่างการพัฒนา )
การขนส่งที่ใช้ io_uring
, IOCP
หรือ epoll
อยู่นอกขอบเขตในขณะนี้
ลังนี้ไม่ได้ใช้การส่งสัญญาณซ้ำตาม acks และการหมดเวลา เกมมีวิธีอื่นในการบรรลุความน่าเชื่อถือ โดยส่วนใหญ่เป็นเพราะข้อมูลล้าสมัยไปแล้วเมื่อกลไกการหมดเวลาใดๆ สามารถตรวจจับแพ็กเก็ตที่สูญหายได้
ตัวอย่างเช่น FPS ส่งข้อมูลผู้เล่นสำหรับสองสามเฟรมสุดท้ายพร้อมกับทุกแพ็กเก็ต ดังนั้นเมื่อแพ็กเก็ตหนึ่งหายไปบนสายแพ็กเก็ตถัดไปก็จะเติมเต็มช่องว่าง
การบีบอัดสถานะของเกมจากเซิร์ฟเวอร์ไปยังไคลเอนต์มักจะขึ้นอยู่กับแพ็กเก็ตสุดท้ายที่ไคลเอนต์ยอมรับ ใช้เหตุการณ์ MessageAcknowledged
และหมายเลขลำดับที่ส่งคืนโดย send
สำหรับสิ่งนี้
ดูไดเร็กทอรีตัวอย่างสำหรับตัวอย่างไคลเอ็นต์/เซิร์ฟเวอร์ ใช้คำสั่งเพื่อรันไดเร็กทอรีเหล่านี้:
cargo run -p server
cargo run -p client
Netstack มาพร้อมกับมาโคร ที่กำลังดำเนินการ สำหรับโครงสร้าง (และแจงนับในภายหลัง)
# [ derive ( Debug , Serialize , Deserialize ) ]
pub struct Greeting {
pub id : u32 ,
pub to : String ,
pub message : String ,
}
เอ็มไอที