Takip et

Ruby on Rails 8 ile Action Cable Kullanarak Çevrimiçi/Çevrimdışı Durum Özelliği Oluşturma

Ruby on Rails 8 ile Action Cable Kullanarak Çevrimiçi/Çevrimdışı Durum Özelliği Oluşturma

Merhaba! Bugün sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalarınıza gerçek zamanlı çevrimiçi/çevrimdışı kullanıcı durum özelliği eklemeyi göstereceğim. Bu özellik, kullanıcılarınızın anlık olarak çevrimiçi olup olmadığını görmenizi sağlar ve etkileşimi artırır. Öncelikle, Action Cable’ın ne olduğunu ve neden kullanmamız gerektiğini kısaca açıklayalım.

Action Cable, Rails uygulamalarınızda gerçek zamanlı özelliklerini eklemenizi sağlayan bir bileşendir. WebSocket protokolünü kullanarak sunucu ve istemci arasında sürekli bir bağlantı kurar. Bu sayede, sunucudan istemciye anlık veri aktarımı mümkün olur. Bu da, kullanıcı durumunun anlık olarak güncellenmesi için ideal bir çözümdür. Başka bir deyişle, Action Cable sayesinde kullanıcılarınızın çevrimiçi veya çevrimdışı durumunu anında görebilirsiniz.

Gerekli Kurulum ve Ayarlar

Öncelikle, bir Rails 8 uygulaması oluşturmanız veya var olan bir uygulamanızı kullanmanız gerekir. Action Cable’ı zaten kullanıyorsanız, bu bölümü geçebilirsiniz. Action Cable’ı henüz kurmadıysanız, aşağıdaki komutu çalıştırarak projenize ekleyebilirsiniz:

rails generate channel ApplicationCable

Ardından, config/cable.yml dosyasını uygulamanızın ihtiyaçlarına göre düzenleyin. Bu dosya, Action Cable’ın nasıl çalışacağını tanımlar. Daha sonra, bir kanal oluşturmanız gerekecek. Bu kanal, istemci ile sunucu arasında iletişimi yönetecektir. Bu işlem için aşağıdaki komutu kullanabiliriz:

rails generate channel PresenceChannel

Bu komut, app/channels/presence_channel.rb dosyasını oluşturur. Bu dosya, kullanıcıların bağlanma ve bağlantıyı kesme durumlarını izleyecektir. Bu dosyayı aşağıdaki gibi düzenleyebilirsiniz:


class PresenceChannel < ApplicationCable::Channel
  def subscribed
    stream_from "presence"
  end

  def unsubscribed
    # Any cleanup needed when channel is unsubscribed
  end
end

İstemci Tarafı (JavaScript)

Şimdi, istemci tarafında, Action Cable'ı kullanarak sunucuya bağlanacak ve kullanıcı durumunu güncelleyeceğiz. Bunun için, Turbolinks gibi bir kütüphane kullanıyorsanız, sayfa yüklendiğinde veya sayfada herhangi bir değişiklik olduğunda bağlantıyı yeniden kurmayı düşünmelisiniz. Bunun için JavaScript kodu kullanacağız. Örneğin, app/javascript/channels/presence_channel.js dosyasını aşağıdaki gibi oluşturabilirsiniz:


import consumer from "./consumer"

consumer.subscriptions.create("presence", {
  connected() {
    // Called when the subscription is ready for use on the server
    console.log("Bağlantı kuruldu!");
  },

  disconnected() {
    // Called when the subscription has been terminated by the server
    console.log("Bağlantı kesildi!");
  },

  received(data) {
    // Called when there's incoming data on the websocket for this channel
    console.log(data);
  }
});

Bu kod, Action Cable'a bağlanacak ve bağlantı durumunu konsola yazdıracaktır. Daha gelişmiş uygulamalarda, buradan gelen verileri kullanarak kullanıcı arayüzünü güncelleyebilirsiniz. Örneğin, çevrimiçi kullanıcı listesini dinamik olarak güncelleyebilirsiniz.

Sunucu Tarafı (Ruby)

Sunucu tarafında, PresenceChannel'ı kullanarak kullanıcıların bağlantı durumunu izleyeceğiz. Bu, kullanıcıların bağlanıp bağlantısını kestiğinde tetiklenen olayları kullanarak yapılabilir. Bu olaylar, diğer kullanıcılara anında bildirim göndermek için kullanılabilir.

Bu örnekte, kullanıcıların çevrimiçi/çevrimdışı durumunu takip etmek ve bunu diğer kullanıcılara iletmek için PresenceChannel'ı kullandık. Daha detaylı bir uygulama için, veritabanında kullanıcıların durumunu saklamak ve daha karmaşık mantıklar eklemek gerekebilir. Bu, uygulama gereksinimlerine bağlıdır. Örneğin, son çevrimiçi zamanını da kaydedebilirsiniz.

Bu gelişmiş özelliklerle, uygulamanızda gerçek zamanlı etkileşimler oluşturabilirsiniz. Örneğin, sohbet uygulaması geliştirmek için Action Cable'ı kullanabilir ve kullanıcıların anlık olarak mesajlarını almalarını sağlayabilirsiniz. Benzer şekilde, oyun geliştirmek için de Action Cable'ı kullanabilirsiniz. Action Cable ile gerçek zamanlı uygulamalar geliştirmek oldukça kolaydır. Daha fazla bilgi için, resmi Rails belgelerine göz atabilirsiniz. Action Cable Dokümanları

Umarım bu makale, Ruby on Rails 8 ile Action Cable kullanarak çevrimiçi/çevrimdışı durum özelliği oluşturmanızda yardımcı olmuştur. Daha fazla soru ve görüşleriniz için web sitemi ziyaret edebilir veya bana ulaşabilirsiniz.

#Etiketler: Ruby on Rails, Action Cable, Çevrimiçi, Çevrimdışı, Gerçek Zamanlı, Kullanıcı Durumu, WebSockets, Rails 8, JavaScript, Sunucu, İstemci


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version