ฉันได้เรียนรู้บทเรียนเล็กน้อย (วิธีที่ยาก) ฉันสร้างแอพพลิเคชั่นที่ทำงานบนคลาวด์ Ubuntu AWS EC2 (ใช้ GPU ที่ทรงพลัง) และฉันต้องการสร้างส่วนหน้าเพื่อดูความคืบหน้าในแบบเรียลไทม์ เนื่องจากต้องการข้อมูลแบบเรียลไทม์จึงเห็นได้ชัดว่าฉันต้องการเว็บซ็อกเก็ตเพื่อผลักดันการอัปเดต
เริ่มต้นด้วยการพิสูจน์แนวคิดและใช้งานได้ดี แต่แล้วเมื่อเราต้องการเปิดให้ใช้งานต่อสาธารณะเราต้องเพิ่มเซสชันผู้ใช้ดังนั้นเราจึงต้องการคุณสมบัติการเข้าสู่ระบบ และไม่ว่าวิธีที่คุณมองไปที่มันไม่มี WebSocket มีที่จะทราบว่าผู้ใช้มันเกี่ยวข้องกับดังนั้นเราเอาทางลัดของการใช้ WebSockets ในการตรวจสอบผู้ใช้ เห็นได้ชัดและสะดวก
จริงๆแล้วเราต้องใช้เวลาเงียบ ๆ เพื่อให้การเชื่อมต่อเชื่อถือได้ เราเริ่มต้นด้วยบทช่วยสอน websocket ราคาถูก แต่พบว่าการใช้งานของเราไม่สามารถเชื่อมต่อใหม่โดยอัตโนมัติเมื่อการเชื่อมต่อขาด ทั้งหมดนี้ดีขึ้นเมื่อเราเปลี่ยนมาใช้ socket-io Socket-io เป็นสิ่งที่ต้องทำ!
พูดตามตรงฉันคิดว่าเราพลาดคุณสมบัติที่ยอดเยี่ยมของ socket-io ไป Socket-io มีข้อเสนออีกมากมายและฉันมั่นใจว่าถ้าคุณคำนึงถึงมันในการออกแบบครั้งแรกคุณจะได้รับประโยชน์มากขึ้น ในทางตรงกันข้ามเราเพิ่งเปลี่ยน websockets เก่าด้วยฟังก์ชัน websocket ของ socket-io และนั่นก็คือมัน (ไม่มีห้องไม่มีช่อง ... ) การออกแบบใหม่อาจทำให้ทุกอย่างมีประสิทธิภาพมากขึ้น แต่เราไม่มีเวลาสำหรับเรื่องนั้น นั่นคือสิ่งที่ต้องจำสำหรับโครงการต่อไปของเรา
ต่อไปเราเริ่มจัดเก็บข้อมูลมากขึ้นเรื่อย ๆ (ประวัติผู้ใช้ใบแจ้งหนี้ธุรกรรม ... ) เราเก็บข้อมูลทั้งหมดไว้ในฐานข้อมูล AWS dynamodb และอีกครั้งเราใช้ socket-io เพื่อสื่อสารการทำงานของ CRUD จากส่วนหน้าไปยังแบ็กเอนด์ ฉันคิดว่าเราเลี้ยวผิดที่นั่น มันเป็นความผิดพลาด.
- เพราะไม่นานหลังจากที่เราพบว่า Amazon ของบริการคลาวด์ (AWS) มีบางอย่างที่ดีเครื่องมือดุลการโหลด / ปรับสำหรับการใช้งานสงบ
- ตอนนี้เรารู้สึกว่าเราจำเป็นต้องเขียนโค้ดจำนวนมากเพื่อดำเนินการจับมือของการดำเนินการ CRUD
- เมื่อเร็ว ๆ นี้เราได้ใช้การรวม Paypal เราจัดการเพื่อให้มันใช้งานได้ แต่อีกบทเรียนที่ทุกคนจะทำมันด้วยความสงบ APIs เราต้องเขียน / ทบทวนตัวอย่างของพวกเขาใหม่เพื่อนำไปใช้กับ websockets เราทำให้มันทำงานได้เร็วพอสมควร แต่มันรู้สึกเหมือนว่าเรากำลังต่อต้านกระแส
ต้องบอกว่าทั้งหมดเราจะถ่ายทอดสดในสัปดาห์หน้า เราไปถึงทันเวลาทุกอย่างทำงานได้ และเร็ว แต่จะปรับขนาดได้หรือไม่?