Tạo Realtime Notification trong Rails 6

Tram Ho

Introduction

Action cable được Rails tích hợp WebSocket để hỗ trợ realtime được viết bằng Ruby cho phép giao tiếp 2 chiều giữa client và server. Dữ liệu được truyền tải qua giao thức HTTP(Ajax).

Nó cho phép viết các tính năng thời gian thực
Nó cung cấp đầy đủ các tính năng để hỗ trợ liên kết giữa client-side javascrip framework and sever-side Rail framework.

Notification

Bước 1

  • Tạo table Notification

Thiết lập mối quan hệ ho model

Bước 2

  • Tạo view

  • Partial View khi có Notification mới

  • Partial View để đếm số lượng Notifcation

Bước 3

  • ActionCable sẽ cho phép bạn mở chanel và duy trì chanel kết nối của chanel tới server mà ko cần phải refresh page. Đầu tiên chúng ta sẽ khởi tạo chanel cho project với cú pháp

  • Rails sẽ tự đông tạo thêm cho chúng ta 2 file app/channels/notifications_channel.rbapp/javascript/channels/notifications_channel.js

Bước 4

  • Thiết lập connetion ở phía server side

Bước 5

  • Thiết lập channels ở phía server side như sau:

Bước 6

  • Thiết lập kết nối ở phía client

Bước 7

  • Thiết lập Subscribers ở phía client side

Bước 8

  • Tạo 1 job để thực hiện việc response cho client, đồng thời broadcast sẽ gọi đến channel.

Bước 9

  • Cuối cùng, Ta sẽ sử dụng Callbacks của Active Record để gọi Jobs thực hiện response cho client.

Tổng kết

Như vậy chúng ta đã hoàn thành việc tạo notification trong ứng dụng, mình là người mới học rails nên bài viết còn nhiều thiếu sót, mong mọi người góp ý để có thể cải thiện

Tài liệu tham khảo

https://guides.rubyonrails.org/action_cable_overview.html

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo