Xây Dựng Ứng Dụng Chat Real Time Với Ruby On Rails


Cũng như các bạn đã biết, đã số các website chat bây giờ hoặc có tính tương tác trực tiếp với người dùng cao thì thường dùng nodejs để làm real time.


Hôm nay , mình cũng xin giới thiệu tới các bạn cách xây dựng 1 ứng dụng chat real time chỉ hoàn toàn sử dụng ruby on rails.

Sau khi khởi tạo app rails thì chúng ta thêm vào Gemfile:

gem 'private_pub'
gem 'thin'

chạy lệnh bundle install .
chạy tiếp lệnh
rails g private_pub:install

rackup private_pub.ru -s thin -E production

Chú ý phải thêm đoạn sau vào application.js  của app.
//= require private_pub

Thêm đoạn sau vào layout của app :
<%= subscribe_to "/messages/new" %>

 /messages/new là url ví dụ của mình .

ở phần action của  controller  , ví dụ sau khi bạn create message, action create  sẽ trả về response là json hoặcchuyển trang. Nhưng ở đây chúng ta sẽ tạo 1 file create.js.erb tương ứng với action đó. Và  file đó  sẽ chứa đoan sau :
<% publish_to "/messages/new" do %>
  $("#chat").append("<%= j render(@messages) %>");
<% end %>

đây là đoạn code mà sau khi bạn create sẽ tự động render ra và realtime có nghĩa là ai đang lướt app của bạn đều sẽ nhìn thấy đoạn chat mới đó.

Để hiểu  rõ hơn các bạn  có thể  xem qua demo của mình : https://github.com/minhquan4080/simple-chat

Comments