Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách nào hiệu quả hơn để gửi các bản cập nhật WebSocket với thay đổi cơ sở dữ liệu MySQL

Nếu bạn sử dụng websockets, bạn nên sử dụng thông báo từ máy khách. Đó là một trong những trường hợp sử dụng chính của họ.

Nếu lo lắng về sự không nhất quán do ngắt kết nối hoặc có điều gì đó thay đổi ở giữa, bạn có thể triển khai một hệ thống tương tự như HTTP ETags , nơi khách hàng sẽ gửi mã băm mà bạn có thể phản hồi ở phía máy chủ nếu có xung đột trong quá trình cập nhật.

Cập nhật:Tôi đoán rằng tôi đã hiểu vấn đề ban đầu của bạn một chút sai. Nếu tôi hiểu đúng trường hợp sử dụng của bạn:bạn đang gửi các bản cập nhật cơ sở dữ liệu từ một máy khách và sau đó tất cả các máy khách được kết nối cần được cập nhật. Trong trường hợp đó, tôi nghĩ máy chủ nên gửi thông báo cập nhật sau khi cập nhật DB xong, vì vậy tôi đồng ý với giải pháp 4. Ở đây, tôi giả sử rằng máy chủ websocket của bạn là cùng một máy chủ chạy PHP và thực hiện cập nhật DB.

Tuy nhiên, tùy thuộc vào trường hợp sử dụng của bạn, ứng dụng khách vẫn phải gửi giá trị băm trong yêu cầu tiếp theo xác định "tầm nhìn thế giới" của nó, vì vậy bạn sẽ không thực hiện cập nhật giống hệt nhau nhiều lần nếu kết nối bị hỏng.

Cập nhật 2:vì vậy bây giờ người ta hiểu rằng bạn thực sự sử dụng một máy chủ websocket riêng biệt, độc lập. Về cơ bản, bạn có hai máy chủ web khác nhau ở phía máy chủ và đang gặp sự cố về cách giao tiếp giữa hai máy chủ. Đây là một vấn đề thực sự và tôi khuyên bạn chỉ nên sử dụng một máy chủ tại một thời điểm - hãy xem cách sử dụng Hỗ trợ websocket Apache (thử nghiệm và không thực sự được khuyến nghị) hoặc di chuyển các tập lệnh php của bạn sang phiên bản websocket.

Cả PHP hay Apache đều không thực sự được xây dựng với websockets. Khá dễ dàng để thiết lập một máy chủ websocket độc lập chỉ sử dụng PHP, nhưng có thể không dễ dàng như vậy sau đó để di chuyển phần còn lại của ngăn xếp PHP sang nó nếu mã đang dựa vào Apache / máy chủ web. Hỗ trợ websocket của Apache cũng khó tối ưu. Thật không may, đối với một giải pháp websocket thực sự, phương pháp hay nhất là sử dụng công nghệ được xây dựng cho nó từ đầu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt MySQL làm cơ sở dữ liệu mặc định trong Rails 3?

  2. Hàm cửa sổ trong truy vấn MySQL

  3. Cập nhật MySQL TẠI ĐÂU

  4. Lỗi 1045 truy cập MySQL bị từ chối

  5. Cây phả hệ mysql