เหตุการณ์เซิร์ฟเวอร์คือการสื่อสารทิศทางเดียวที่ส่งเหตุการณ์และข้อมูลจากโปรโตคอล WebSocket ไปยังไคลเอนต์ ในปัจจุบันเบราว์เซอร์กระแสหลักทั้งหมดรองรับเซิร์ฟเวอร์ที่ส่งเหตุการณ์แน่นอนยกเว้น Internet Explorer 2333 ...
โปรโตคอล WebSocket เป็นโปรโตคอลการสื่อสารไคลเอนต์เซิร์ฟเวอร์อื่นหลังจากโปรโตคอล HTTP
การใช้เหตุการณ์เซิร์ฟเวอร์เหตุการณ์เซิร์ฟเวอร์ (ต่อไปนี้จะเรียกว่า SSE) เป็นเซิร์ฟเวอร์ => วิธีการสื่อสารไคลเอนต์ ซ
รหัสลูกค้า JSต้องเพิ่มหน้า H5 ด้วยรหัส JS ต่อไปนี้:
<script> ifof (ทุก ๆ )! Eventsource.onopen = function () {console.log (เชื่อมต่อเพื่อเปิด ... );} // เมื่อเกิดข้อผิดพลาดเมื่อ Eventsource.onerror = function (e) {console.log (e); เหตุการณ์เป็นเหตุการณ์เริ่มต้น eventsource.onmessage = ฟังก์ชั่น (เหตุการณ์) {console.log (onMessage ... ); var data = evals ('+event.data+') '); โปรโตคอลชื่อโดเมนและพอร์ตระบุแหล่งที่มาของข้อความ กิจกรรมยกเว้น Internet Explorer document.getElementById (ผลลัพธ์) .innerhtml = ขออภัยเบราว์เซอร์ของคุณไม่รองรับเหตุการณ์เซิร์ฟเวอร์-เซนต์ ... ;} </script>เซิร์ฟเวอร์
เซิร์ฟเวอร์ควรกลับรูปแบบข้อมูลประเภทใด ลูกค้าควรให้คำตอบแบบไหน? ก่อนอื่นมีตัวอย่าง. NET
/// <summary> /// Push Messages /// </summary> /// <return> </return> [httpget] public httpresponsemessage sentnews () {httpreSponsemessage ตอบสนอง = req uest.createresponse (httpstatuscode.ok); ลอง {//response.headers.adds.adds.add_rcess-control-lown-origin, *); String String Even =, data =; / เชื่อมต่อเวลาที่เชื่อมต่อกันหลังจากเปิด (มิลลิวินาที) ในความเป็นจริงมันสามารถเข้าใจได้ว่า 2333 ... byte [] array = encoding.utf8.getBytes (แม้แต่ + data + retry); ; ) {loghelper.writeweblog (ex);} return response;}
หลังจากอ่านรหัสข้างต้นฉันคิดว่าคุณควรมีวิธีโดยประมาณ
ควรตั้งค่าประเภทเนื้อหาส่วนหัวการตอบกลับเป็นข้อความ/เหตุการณ์สตรีม
รูปแบบข้อมูลของการตอบกลับควรสังเกตว่าข้อมูล: เหตุการณ์: และลองอีกครั้ง: เครื่องหมายเหล่านี้ในรหัสด้านบน: ป้ายกำกับเหล่านี้:
1.vent: มันหมายถึงประเภทของเหตุการณ์ที่จะประกาศประเภทของเหตุการณ์ เมื่อได้รับข้อมูลเบราว์เซอร์จะสร้างเหตุการณ์ที่สอดคล้องกัน
2. ข้อมูล: หมายความว่าบรรทัดมีข้อมูล มันสามารถปรากฏได้หลายครั้งที่จุดเริ่มต้นของข้อมูล บรรทัดทั้งหมดเหล่านี้เป็นข้อมูลของเหตุการณ์
3.Retry: หมายความว่าเส้นที่ใช้เพื่อประกาศเวลารอก่อนที่เบราว์เซอร์จะเชื่อมต่อหลังจากตัดการเชื่อมต่อการเชื่อมต่อ
4.ID: หมายความว่าบรรทัดที่ใช้ในการประกาศตัวระบุ (นั่นคือจำนวนข้อมูล) ซึ่งไม่ได้ใช้กันทั่วไป
ข้างต้นเป็นแอปพลิเคชันที่ง่ายของเหตุการณ์เซิร์ฟเวอร์ฉันจะไม่แสดงเอฟเฟกต์ความสำเร็จอีกต่อไป