チャット機能を実装する場合、WebSocketを使う、Server Sent Event(SSE)を使う、Pusherなどのサービスを活用するなど、いくつかの方法がありますが、私のケースでは、WebSocketを使うのが最もマッチしていたので、WebSocketを利用することを考えます。この辺の選定についてはまた別途まとめたいと思います RailsでWebSocketを使う場合、websocket-railsを使うのが、手っ取り早くて良いのではないかと思います そこで、websocket-railsでの、チャネル、プライベートチャネル、セキュリティ、認証あたりの関係性が分かりにくかったので、自分なりに整理してみました websocket-railsの基本的な使い方 Event Routerへのイベントの追加 JSクライアントからのリクエストをRailsのコントローラーとマッピングしている
![Railsでチャット機能を実装する方法(実装編) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ecff4eca5eabbbe8003658ef063efdd925c67b12/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UmFpbHMlRTMlODElQTclRTMlODMlODElRTMlODMlQTMlRTMlODMlODMlRTMlODMlODglRTYlQTklOUYlRTglODMlQkQlRTMlODIlOTIlRTUlQUUlOUYlRTglQTMlODUlRTMlODElOTklRTMlODIlOEIlRTYlOTYlQjklRTYlQjMlOTUlMjglRTUlQUUlOUYlRTglQTMlODUlRTclQjclQTglMjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTI1ZDE4ZTlhYjEyOGZmOGU2YmFiMTdiZjMzOTIwN2Ez%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBqd2FrbyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWNjNzgzZjc5N2IwNTMxYTBiMGFkMzA5YzQ5MWY3MDU%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D50dfd814b51cc8103eee83a81f906206)