WebSockets - การสื่อสารแบบดูเพล็กซ์
ก่อนที่จะดำน้ำตามความต้องการของเว็บซ็อกเก็ตจำเป็นต้องดูเทคนิคที่มีอยู่ซึ่งใช้สำหรับ duplex communicationระหว่างเซิร์ฟเวอร์และไคลเอนต์ มีดังนี้ -
- Polling
- การสำรวจความคิดเห็นแบบยาว
- Streaming
- Postback และ AJAX
- HTML5
การสำรวจความคิดเห็น
การสำรวจสามารถกำหนดเป็นวิธีการซึ่งดำเนินการร้องขอเป็นระยะโดยไม่คำนึงถึงข้อมูลที่มีอยู่ในการส่ง คำขอเป็นระยะจะถูกส่งในรูปแบบซิงโครนัส ไคลเอนต์ส่งคำขอเป็นระยะในช่วงเวลาที่กำหนดไปยังเซิร์ฟเวอร์ การตอบสนองของเซิร์ฟเวอร์มีข้อมูลที่มีอยู่หรือข้อความเตือนบางส่วนอยู่ในนั้น
การสำรวจความคิดเห็นแบบยาว
การสำรวจความคิดเห็นแบบยาวตามชื่อที่แนะนำมีเทคนิคที่คล้ายกันเช่นการสำรวจความคิดเห็น ไคลเอนต์และเซิร์ฟเวอร์ให้การเชื่อมต่อใช้งานได้จนกว่าจะมีการดึงข้อมูลหรือหมดเวลา หากการเชื่อมต่อขาดหายไปเนื่องจากสาเหตุบางประการไคลเอ็นต์สามารถเริ่มต้นใหม่และดำเนินการร้องขอตามลำดับได้
การสำรวจความคิดเห็นแบบยาวไม่ใช่อะไรนอกจากการปรับปรุงประสิทธิภาพในกระบวนการสำรวจความคิดเห็น แต่การร้องขออย่างต่อเนื่องอาจทำให้กระบวนการช้าลง
สตรีมมิ่ง
ถือเป็นตัวเลือกที่ดีที่สุดสำหรับการรับส่งข้อมูลแบบเรียลไทม์ เซิร์ฟเวอร์จะเปิดการเชื่อมต่อและใช้งานกับไคลเอนต์จนกว่าและเว้นแต่จะมีการดึงข้อมูลที่ต้องการ ในกรณีนี้การเชื่อมต่อดังกล่าวจะเปิดอย่างไม่มีกำหนด การสตรีมมีส่วนหัว HTTP ซึ่งเพิ่มขนาดไฟล์และเพิ่มความล่าช้า ซึ่งถือได้ว่าเป็นอุปสรรคสำคัญ
AJAX
AJAX ใช้ Javascript XmlHttpRequestวัตถุ. เป็นรูปแบบย่อของ Asynchronous Javascript และ XMLXmlHttpRequestObject อนุญาตให้เรียกใช้ Javascript โดยไม่ต้องโหลดหน้าเว็บทั้งหมดซ้ำ AJAX ส่งและรับเพียงบางส่วนของหน้าเว็บ
ข้อมูลโค้ดของการโทรด้วย AJAX XmlHttpRequest Object มีดังนี้ -
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
ข้อเสียที่สำคัญของ AJAX เมื่อเปรียบเทียบกับ Web Sockets เป็น -
- พวกเขาส่งส่วนหัว HTTP ซึ่งทำให้ขนาดรวมใหญ่ขึ้น
- การสื่อสารเป็นแบบ half-duplex
- เว็บเซิร์ฟเวอร์ใช้ทรัพยากรมากขึ้น
HTML5
HTML5 เป็นเฟรมเวิร์กที่มีประสิทธิภาพสำหรับการพัฒนาและออกแบบเว็บแอปพลิเคชัน เสาหลัก ได้แก่Mark-up, CSS3 และ Javascript API ร่วมกัน
แผนภาพต่อไปนี้แสดงส่วนประกอบ HTML5 -
ข้อมูลโค้ดที่ระบุด้านล่างนี้อธิบายถึงการประกาศ HTML5 และประเภทของมัน
<!DOCTYPE html>
ทำไมเราต้องใช้ Web Sockets?
อินเทอร์เน็ตถูกสร้างขึ้นเพื่อเป็นชุดของหน้า Hypertext Mark-up Language (HTML) ที่เชื่อมโยงซึ่งกันและกันเพื่อสร้างเว็บข้อมูลเชิงแนวคิด ในช่วงเวลานั้นทรัพยากรคงที่มีจำนวนเพิ่มขึ้นและมีรายการที่สมบูรณ์มากขึ้นเช่นรูปภาพและเริ่มเป็นส่วนหนึ่งของผ้าเว็บ
เทคโนโลยีเซิร์ฟเวอร์ขั้นสูงซึ่งอนุญาตให้เพจเซิร์ฟเวอร์แบบไดนามิก - หน้าที่มีเนื้อหาถูกสร้างขึ้นโดยอิงจากคิวรี
ในไม่ช้าข้อกำหนดในการมีหน้าเว็บแบบไดนามิกมากขึ้นจะนำไปสู่ความพร้อมใช้งานของ Dynamic Hypertext Mark-up Language (DHTML) ขอบคุณ JavaScript ในช่วงหลายปีต่อมาเราได้เห็นcross frame communication ในความพยายามที่จะหลีกเลี่ยงการโหลดหน้าซ้ำตามด้วย HTTP Polling ภายในเฟรม
อย่างไรก็ตามไม่มีโซลูชันใดที่นำเสนอโซลูชันข้ามเบราว์เซอร์ที่ได้มาตรฐานอย่างแท้จริงสำหรับการสื่อสารแบบสองทิศทางแบบเรียลไทม์ระหว่างเซิร์ฟเวอร์และไคลเอนต์
สิ่งนี้ก่อให้เกิดความต้องการของ Web Sockets Protocol ทำให้เกิดการสื่อสารแบบฟูลดูเพล็กซ์ซึ่งนำฟังก์ชันการทำงานที่มีเดสก์ท็อปมาใช้กับเว็บเบราว์เซอร์ทั้งหมด