websocket ไม่เคยปิด ถ่ายโอนข้อมูลหลายรายการ

ฉันได้สร้างเว็บแอปแล้ว ฉันส่งและรับข้อมูลจำนวนมากโดยใช้ Websockets และทุกครั้งที่ฉันต้องเปิดและปิดการเชื่อมต่อ Websocket

ทำไมไม่หลีกเลี่ยงการเปิด/ปิดอย่างต่อเนื่อง? แล้วเมื่อโหลดเพจ Websockets จะถูกสร้างและเปิดแต่ไม่เคยปิดเลย ดังนั้นฉันจึงใช้ Websockets เดียวกันในการส่งและรับข้อความ อาร์เรย์ ลิงก์ คำค้นหา ฯลฯ ฉันยังคิดที่จะถ่ายโอนไฟล์เช่นรูปภาพและ/หรือวิดีโอด้วยซ้ำ ผ่านทางเว็บซ็อกเก็ต

ฉันสามารถทำสิ่งนี้ได้หรือไม่ หรือฉันต้องปิดการเชื่อมต่อ WS หลังจากทำเสร็จแล้ว? WS ที่ไม่มีวันปิดจะเพิ่มปัญหาด้านความปลอดภัยหรือไม่ นอกจากนี้ ฉันไม่รู้ว่า WS จะปิดจริงหรือไม่เมื่อผู้ใช้ออกจากเพจ หากไม่เป็นเช่นนั้น ฉันเดาว่านั่นเป็นปัญหาด้านความปลอดภัยอีกประการหนึ่งตรงนั้น

ฉันจะถ่ายโอนไฟล์ผ่าน WS ได้อย่างไร ฉันไม่สามารถจินตนาการได้ว่าจะทำอย่างไร

ขอบคุณล่วงหน้า


person slevin    schedule 21.08.2015    source แหล่งที่มา


คำตอบ (1)


Websockets มีไว้เพื่อให้เปิดตลอดอายุการใช้งานของหน้าเว็บหรือ SPA... ซึ่งเป็นพฤติกรรมปกติที่คาดหวังโดยสิ้นเชิง

เซิร์ฟเวอร์อาจปิด websocket เมื่อใดก็ได้ และนี่เป็นเรื่องปกติ - เพียงแค่เปิด websocket อีกครั้ง

โดยปกติ เซิร์ฟเวอร์จะปิด websocket เฉพาะในกรณีที่ websocket ไม่ได้ใช้งานเป็นระยะเวลาหนึ่ง (เช่น Heroku ตั้งค่าขีดจำกัดการหมดเวลาไว้ที่ 50 วินาที) หรือเพื่อการพิจารณาการรับส่งข้อมูลและการทำงานพร้อมกัน มิฉะนั้น การเชื่อมต่อเว็บซ็อกเก็ตอาจยังคงเปิดอยู่ตลอดเวลา

ตัวอย่างเช่น เฟรมเวิร์ก Plezi (Ruby) จะส่งเฟรม pong โดยอัตโนมัติเป็นระยะ ๆ ดังนั้นการเชื่อมต่อ จะยังคงเปิดอยู่โดยไม่มีกำหนดเว้นแต่เบราว์เซอร์จะปิดซ็อกเก็ต (โดยปกติโดยการออกจากหน้า)

person Myst    schedule 21.08.2015