Pola pengamat melalui HTTP dan TCP / IP (Server-Client)


9

Saya memiliki server dan banyak klien (sekitar 50 klien) yang terhubung ke server tersebut berdasarkan aplikasi web, yang tentu saja berdasarkan protokol HTTP, yang pada gilirannya menggunakan TCP / IP (koreksi saya jika saya salah, karena saya Saya tidak terlalu bagus di jaringan).

Masalahnya adalah, saya harus mengembangkan mekanisme peringatan, di mana, ketika seseorang mengirimkan formulir dengan nilai-nilai berbahaya, manajer (yang juga terhubung melalui aplikasi web yang sama) harus menerima peringatan pop-up di layarnya, hampir nyata -waktu (langsung).

Namun, karena protokol HTTP tidak memiliki kewarganegaraan, saya agak bingung di sini. Saya tidak tahu bagaimana saya bisa menerapkan ini.

Salah satu solusi bisa menggunakan JavaScript bersama setInterval()fungsi untuk menarik data setiap detik dari server. Tapi ini agak kotor bagi saya dan tidak profesional.

Apakah kalian punya ide menerapkan solusi lain?


Posting ini dapat membantu stackoverflow.com/questions/640488/…
NoChance

Klien seperti apa? Klien tipis (berbasis browser) atau klien berat?
ysdx

@ysdx, pikirkan klien. Klien dengan dukungan browser saja.
Saeed Neamati

Jawaban:


4

Anda harus menggunakan semacam push ajax (lihat Komet ) untuk memberi tahu klien. Ini dapat menghilangkan kebutuhan akan polling, pada dasarnya Anda membuat koneksi tetap terbuka yang dapat digunakan untuk memberi tahu browser tentang peristiwa yang terjadi. Namun, ini tidak berfungsi dengan semua browser. Anda kembali ke "polling panjang" dalam kasus seperti itu.


6

Saya pikir ini adalah alasan mengapa WebSockets dibuat. Jika Anda tidak memerlukan kompatibilitas dengan browser lama, Anda mungkin ingin menggunakan ini sebagai ganti polling. Anda mungkin harus menggunakan polling sebagai fallback.

Saya tidak yakin seberapa stabilnya spesifikasi / implementasi saat ini (tidak terlalu stabil dulu). Tampaknya spek terbaru diimplementasikan di Firefox 6 dan Chromium 14.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.