# ActionCable & WebSockets (Ruby on Rails) > ฟีเจอร์แบบเรียลไทม์, channels, subscriptions, broadcasting, การกำหนดค่า cable.yml, Redis adapter - 18 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Ruby on Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions.md) ## 1. ActionCable ใน Ruby on Rails คืออะไร? **คำตอบ** ActionCable เป็นเฟรมเวิร์กที่ฝังอยู่ใน Rails ที่ช่วยให้สามารถสร้างฟีเจอร์แบบเรียลไทม์ผ่าน WebSockets ได้ มันให้การ abstraction ฝั่งเซิร์ฟเวอร์ด้วย Ruby และฝั่งไคลเอนต์ด้วย JavaScript เพื่อสร้างการเชื่อมต่อแบบสองทิศทางที่คงอยู่ระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ ActionCable ผสานเข้ากับส่วนอื่น ๆ ของแอปพลิเคชัน Rails ได้อย่างเป็นธรรมชาติ ทำให้เข้าถึง models และคอมโพเนนต์อื่น ๆ ได้ ## 2. ไฟล์การกำหนดค่าใดที่กำหนด adapter ที่ ActionCable ใช้สำหรับ pub/sub? **คำตอบ** ไฟล์ cable.yml ที่อยู่ใน config/ กำหนด adapter pub/sub ที่ ActionCable ใช้ ไฟล์นี้ระบุ adapter ที่แตกต่างกันตามแต่ละ environment: async สำหรับ development (ในหน่วยความจำ, กระบวนการเดียว), redis หรือ postgresql สำหรับ production (ช่วยให้สื่อสารระหว่างหลายกระบวนการ/เซิร์ฟเวอร์ได้) การกำหนดค่ามักจะรวมถึง URL ของเซิร์ฟเวอร์ Redis และ channel ที่จะใช้ ## 3. channels ของ ActionCable ฝั่งเซิร์ฟเวอร์มักจะถูกวางไว้ในไดเรกทอรีใด? **คำตอบ** channels ของ ActionCable ฝั่งเซิร์ฟเวอร์จะถูกวางไว้ใน app/channels/ ไดเรกทอรีนี้มี ApplicationCable::Connection (การจัดการการเชื่อมต่อและการยืนยันตัวตน) และ ApplicationCable::Channel (คลาสพื้นฐานสำหรับทุก channel) channel ที่กำหนดเองจะสืบทอดจาก ApplicationCable::Channel และกำหนด business logic สำหรับการสื่อสารแบบเรียลไทม์แต่ละประเภท ## มีอีก 15 คำถาม - ควรใช้เมธอดใดใน channel เพื่อ subscribe ไปยัง message stream ที่ระบุด้วย string? - ความแตกต่างระหว่าง stream_from และ stream_for ใน ActionCable คืออะไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ - [พื้นฐาน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-basics.md): 25 คำถาม, Junior - [การเขียนโปรแกรมเชิงวัตถุใน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-oop.md): 20 คำถาม, Junior - [พื้นฐาน Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-fundamentals.md): 18 คำถาม, Junior - [Routing & Controllers](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/routing-controllers.md): 22 คำถาม, Junior - [พื้นฐาน ActiveRecord](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-basics.md): 25 คำถาม, Junior - [Views และ ERB Templates](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/views-erb-templates.md): 20 คำถาม, Junior - [การเชื่อมโยงของ ActiveRecord](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-associations.md): 24 คำถาม, Mid-Level - [การสอบถาม ActiveRecord ขั้นสูง](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-queries.md): 28 คำถาม, Mid-Level - [ฟอร์ม Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-forms.md): 20 คำถาม, Mid-Level - [การยืนยันตัวตนและการอนุญาต](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/authentication-authorization.md): 22 คำถาม, Mid-Level - [Asset Pipeline สมัยใหม่และ frontend](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-asset-pipeline.md): 18 คำถาม, Mid-Level - [โหมด API ของ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-api-mode.md): 20 คำถาม, Mid-Level - [การทดสอบด้วย RSpec](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-testing-rspec.md): 24 คำถาม, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-job-background-jobs.md): 20 คำถาม, Mid-Level - [ActionMailer](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/action-mailer.md): 18 คำถาม, Mid-Level - [ActiveStorage](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-storage.md): 20 คำถาม, Mid-Level - [กลยุทธ์การ Caching](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/caching-strategies.md): 20 คำถาม, Mid-Level - [การ Migration ขั้นสูง](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/database-migrations-advanced.md): 20 คำถาม, Mid-Level - [Rails Engines และแอปแบบโมดูลาร์](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-engines-modular-apps.md): 18 คำถาม, Senior - [การเพิ่มประสิทธิภาพการทำงาน](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/performance-optimization.md): 26 คำถาม, Senior - [Design Patterns ใน Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-design-patterns.md): 22 คำถาม, Senior - [เมตาโปรแกรมมิงใน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-metaprogramming.md): 20 คำถาม, Senior - [ความปลอดภัยของ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-security.md): 22 คำถาม, Senior - [GraphQL กับ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/graphql-rails.md): 20 คำถาม, Senior - [การดีพลอยและโปรดักชัน](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-deployment-production.md): 20 คำถาม, Senior - [Monitoring & Logging](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/monitoring-logging.md): 20 คำถาม, Senior - [กลยุทธ์การอัปเกรด Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-upgrade-strategies.md): 18 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/action-cable-websockets