รูปแบบการสังเกตการณ์ผ่าน HTTP และ TCP / IP (เซิร์ฟเวอร์ - ไคลเอ็นต์)


9

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

ปัญหาคือว่าฉันควรพัฒนากลไกการแจ้งเตือนซึ่งเมื่อใครบางคนส่งแบบฟอร์มที่มีค่าอันตรายผู้จัดการ (ผู้ที่เชื่อมต่อผ่านเว็บแอปพลิเคชันเดียวกัน) ควรได้รับป๊อปอัปแจ้งเตือนบนหน้าจอของเขาเกือบจะเป็นจริง - เวลา (ทันที)

อย่างไรก็ตามเนื่องจากโปรโตคอล HTTP นั้นไร้สัญชาติฉันจึงสับสนเล็กน้อยที่นี่ ฉันไม่รู้ว่าฉันจะใช้สิ่งนี้ได้อย่างไร

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

พวกคุณมีความคิดที่จะนำโซลูชันอื่นมาใช้หรือไม่?


โพสต์นี้อาจช่วย stackoverflow.com/questions/640488/…
NoChance

ลูกค้าประเภทใด Thin (เบราว์เซอร์) ไคลเอ็นต์หรือไคลเอนต์หนัก
ysdx

@ysdx คิดว่าลูกค้า ลูกค้าที่สนับสนุนเบราว์เซอร์เท่านั้น
Saeed Neamati

คำตอบ:


4

คุณควรใช้ajax push (ดูดาวหาง ) เพื่อแจ้งให้ลูกค้าทราบ มันสามารถขจัดความจำเป็นในการทำโพลโดยทั่วไปคุณเปิดการเชื่อมต่อที่กำหนดไว้ซึ่งสามารถใช้เพื่อแจ้งเบราว์เซอร์ของเหตุการณ์ที่เกิดขึ้น อย่างไรก็ตามสิ่งนี้ไม่สามารถใช้ได้กับเบราว์เซอร์ทั้งหมด คุณถอยกลับไปที่ "การทำโพลแบบยาว" ในกรณีเช่นนี้


6

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

ฉันไม่แน่ใจว่าวันนี้ข้อมูลจำเพาะ / การใช้งานมีความเสถียรเพียงใด (มันไม่เสถียรมากเมื่อไม่นานมานี้) ดูเหมือนว่าข้อมูลจำเพาะล่าสุดจะนำไปใช้ใน Firefox 6 และ Chromium 14

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.