Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mana yang lebih efisien untuk mengirim pembaruan WebSocket dengan perubahan database MySQL?

Jika Anda menggunakan soket web, Anda harus menggunakan pemberitahuan dari klien. Itu salah satu kasus penggunaan utama mereka.

Jika Anda khawatir tentang inkonsistensi karena koneksi terputus atau sesuatu berubah di antaranya, Anda dapat menerapkan sistem yang mirip dengan HTTP ETags , di mana klien akan mengirimkan kode hash yang dapat Anda tanggapi di sisi server jika terjadi konflik dalam memperbarui.

Pembaruan:Saya kira saya mengerti masalah awal Anda agak salah. Jika saya memahami kasus penggunaan Anda dengan benar:Anda mengirim pembaruan basis data dari klien dan setelah itu semua klien yang terhubung perlu diperbarui. Dalam hal ini, saya pikir server harus mengirim pesan pembaruan setelah pembaruan DB selesai, jadi saya setuju dengan solusi 4. Saya berasumsi di sini bahwa server websocket Anda adalah server yang sama yang menjalankan PHP dan melakukan pembaruan DB.

Namun, bergantung pada kasus penggunaan Anda, klien harus tetap mengirimkan nilai hash pada permintaan berikutnya yang mengidentifikasi "pandangan dunia" -nya, sehingga Anda tidak akan melakukan pembaruan yang sama beberapa kali jika sambungan terputus.

Pembaruan 2:jadi sekarang dipahami bahwa Anda memang menggunakan server websocket mandiri yang terpisah. Pada dasarnya Anda memiliki dua server web yang berbeda di sisi server dan mengalami masalah tentang cara berkomunikasi di antara keduanya. Ini adalah masalah nyata, dan saya sarankan hanya menggunakan satu server pada satu waktu - lihat menggunakan Dukungan soket web Apache (eksperimental dan tidak terlalu disarankan) atau memigrasikan skrip php Anda ke instance websocket.

Baik PHP maupun Apache tidak benar-benar dibuat dengan mempertimbangkan soket web. Cukup mudah untuk menyiapkan server websocket mandiri hanya menggunakan PHP, tetapi mungkin tidak begitu mudah untuk memigrasi sisa tumpukan PHP ke sana jika kodenya mengandalkan Apache/server web. Dukungan websocket Apache juga hampir tidak optimal. Sayangnya, untuk solusi websocket yang sebenarnya, praktik terbaiknya adalah menggunakan teknologi yang dibangun untuknya dari awal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS EMR PySpark terhubung ke mysql

  2. Mysql membuat loop sementara tanpa membuat prosedur

  3. Abaikan kriteria WHERE tertentu

  4. Panggil ke fungsi anggota rowCount() pada non-objek

  5. Bergabung dengan tabel InnoDB dengan tabel MyISAM