Php thời gian thực

Hiện ứng dụng web này đã được phát triển khác xa so với ngày đầu tiên nó xuất hiện, kèm theo đó là vô số kỹ thuật mới được áp dụng để phục vụ cho quá trình này.

đánh thức khái niệm thời gian thực mà bạn định nghĩa cho ứng dụng thôi

  • If need realtime realtime. chắc chắn phải sử dụng websocket, SSE, Kéo dài hoặc Sao chổi rồi. Tuy nhiên, sẽ rất nhiều kết nối và nếu dữ liệu thay đổi liên tục, có thể tính toán phía máy chủ sẽ rất quan trọng. Ví dụ bạn cần tính tổng đơn hàng đã được bán, cứ 0. 5s back has a new rows, the total task 0. 5s như vậy rất quý về tài nguyên
  • Còn việc gửi ajax định kỳ cũng có thể cho cảm giác thời gian thực, vì ngay cả thời gian thực thực cũng sẽ bị trễ về mạng,… Facebook sử dụng gửi ajax định kỳ

Ngoài ra, nếu muốn sử dụng realtime realtime với PHP, bạn có thể sử dụng ZeroMQ, ReactPHP, … Tuy PHP không hỗ trợ gốc như NodeJS nhưng hoàn toàn có thể sử dụng event-loop tự viết hoặc thư viện được.

Ngoài hỗ trợ gửi email, Laravel còn hỗ trợ gửi thông báo trên nhiều kênh khác nhau, bao gồm mail, SMS và Slack. Thông báo cũng có thể được lưu trữ trong cơ sở dữ liệu để chúng có thể được hiển thị trong trang web giao diện của bạn

Bài này mình sẽ hướng dẫn bạn sử dụng cơ sở dữ liệu để lưu và hiển thị thông báo khi người dùng thực hiện 1 thao tác nào đó

Đầu tiên bạn tạo 1 dự án laravel

composer create-project --prefer-dist laravel/laravel NotificationRealTime

Create 1 database then connect to your project

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test_notification
DB_USERNAME=root
DB_PASSWORD=

Tạo bảng thông báo để lưu thông báo

php artisan notifications:table

php artisan migrate

Tiếp theo, bạn sử dụng cấu hình thủ công để tạo một tệp TestNotification

php artisan make:notification TestNotification

file vừa được tạo nằm trong thư mục

public function via[$notifiable]
{
    return ['database'];
}
0

Tại chức năng thông qua các bạn hãy sử dụng return database để dữ liệu được lưu lại trong db

public function via[$notifiable]
{
    return ['database'];
}

Sử dụng chức năng toArray để trả về một sự kiện lưu dữ liệu vào bảng thông báo

 public function toArray[$notifiable]
    {
        return [
                'invoice_id' => $this->invoice->id,
                'amount' => $this->invoice->amount,
        ];
    }

Chúng ta chia sẻ lại tập tin đó như sau

Chủ Đề