# ActionCable & WebSockets (Ruby on Rails) > Tính năng thời gian thực, channels, subscriptions, broadcasting, cấu hình cable.yml, adapter Redis - 18 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: Ruby on Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van.md) ## 1. ActionCable trong Ruby on Rails là gì? **Câu trả lời** ActionCable là một framework tích hợp sẵn trong Rails cho phép triển khai các tính năng thời gian thực thông qua WebSockets. Nó cung cấp một lớp trừu tượng phía server bằng Ruby và phía client bằng JavaScript để thiết lập các kết nối hai chiều bền vững giữa trình duyệt và server. ActionCable tích hợp tự nhiên với phần còn lại của ứng dụng Rails, cho phép truy cập vào models và các thành phần khác. ## 2. File cấu hình nào định nghĩa adapter mà ActionCable dùng cho pub/sub? **Câu trả lời** File cable.yml nằm trong config/ định nghĩa adapter pub/sub mà ActionCable sử dụng. File này chỉ định các adapter khác nhau theo từng môi trường: async cho development (trong bộ nhớ, một tiến trình), redis hoặc postgresql cho production (cho phép giao tiếp giữa nhiều tiến trình/server). Cấu hình thường bao gồm URL của server Redis và channel cần sử dụng. ## 3. Các channel ActionCable phía server thường được đặt trong thư mục nào? **Câu trả lời** Các channel ActionCable phía server được đặt trong app/channels/. Thư mục này chứa ApplicationCable::Connection (quản lý kết nối và xác thực) và ApplicationCable::Channel (lớp cơ sở cho tất cả các channel). Các channel tùy chỉnh kế thừa từ ApplicationCable::Channel và định nghĩa logic nghiệp vụ cho từng loại giao tiếp thời gian thực. ## Còn 15 câu hỏi nữa - Nên dùng phương thức nào trong một channel để đăng ký vào một luồng tin nhắn được xác định bằng một chuỗi? - Sự khác biệt giữa stream_from và stream_for trong ActionCable là gì? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Ruby on Rails khác - [Kiến thức cơ bản về Ruby](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/ruby-basics.md): 25 câu hỏi, Junior - [Lập trình hướng đối tượng trong Ruby](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/ruby-oop.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-fundamentals.md): 18 câu hỏi, Junior - [Routing & Controllers](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/routing-controllers.md): 22 câu hỏi, Junior - [Kiến thức cơ bản về ActiveRecord](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-record-basics.md): 25 câu hỏi, Junior - [Views & Template ERB](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/views-erb-templates.md): 20 câu hỏi, Junior - [Liên kết ActiveRecord](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-record-associations.md): 24 câu hỏi, Mid-Level - [Truy vấn ActiveRecord nâng cao](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-record-queries.md): 28 câu hỏi, Mid-Level - [Form Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-forms.md): 20 câu hỏi, Mid-Level - [Xác thực & Phân quyền](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/authentication-authorization.md): 22 câu hỏi, Mid-Level - [Asset Pipeline hiện đại & frontend](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-asset-pipeline.md): 18 câu hỏi, Mid-Level - [Chế độ API của Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-api-mode.md): 20 câu hỏi, Mid-Level - [Kiểm thử với RSpec](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-testing-rspec.md): 24 câu hỏi, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-job-background-jobs.md): 20 câu hỏi, Mid-Level - [ActionMailer](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/action-mailer.md): 18 câu hỏi, Mid-Level - [ActiveStorage](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-storage.md): 20 câu hỏi, Mid-Level - [Chiến lược Caching](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/caching-strategies.md): 20 câu hỏi, Mid-Level - [Migration nâng cao](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/database-migrations-advanced.md): 20 câu hỏi, Mid-Level - [Rails Engines & ứng dụng mô-đun](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-engines-modular-apps.md): 18 câu hỏi, Senior - [Tối ưu hóa hiệu năng](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/performance-optimization.md): 26 câu hỏi, Senior - [Design Patterns trong Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-design-patterns.md): 22 câu hỏi, Senior - [Lập trình meta trong Ruby](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/ruby-metaprogramming.md): 20 câu hỏi, Senior - [Bảo mật Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-security.md): 22 câu hỏi, Senior - [GraphQL với Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/graphql-rails.md): 20 câu hỏi, Senior - [Triển khai & Sản xuất](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-deployment-production.md): 20 câu hỏi, Senior - [Monitoring & Logging](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/monitoring-logging.md): 20 câu hỏi, Senior - [Chiến lược nâng cấp Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-upgrade-strategies.md): 18 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/action-cable-websockets