{"id":24234,"date":"2025-06-16T18:30:17","date_gmt":"2025-06-16T15:30:17","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/"},"modified":"2025-06-16T18:30:17","modified_gmt":"2025-06-16T15:30:17","slug":"ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/","title":{"rendered":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma"},"content":{"rendered":"<p><body><\/p>\n<p>Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma<\/p>\n<p>Merhaba!  Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r.  \u00d6ncelikle, Action Cable&#8217;\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.<\/p>\n<p>Action Cable, Rails uygulamalar\u0131n\u0131zda ger\u00e7ek zamanl\u0131 \u00f6zelliklerini eklemenizi sa\u011flayan bir bile\u015fendir.  WebSocket protokol\u00fcn\u00fc kullanarak sunucu ve istemci aras\u0131nda s\u00fcrekli bir ba\u011flant\u0131 kurar.  Bu sayede, sunucudan istemciye anl\u0131k veri aktar\u0131m\u0131 m\u00fcmk\u00fcn olur.  Bu da, kullan\u0131c\u0131 durumunun anl\u0131k olarak g\u00fcncellenmesi i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr.  Ba\u015fka bir deyi\u015fle, Action Cable sayesinde kullan\u0131c\u0131lar\u0131n\u0131z\u0131n \u00e7evrimi\u00e7i veya \u00e7evrimd\u0131\u015f\u0131 durumunu an\u0131nda g\u00f6rebilirsiniz.<\/p>\n<h2>Gerekli Kurulum ve Ayarlar<\/h2>\n<p>\u00d6ncelikle, bir Rails 8 uygulamas\u0131 olu\u015fturman\u0131z veya var olan bir uygulaman\u0131z\u0131 kullanman\u0131z gerekir.  Action Cable&#8217;\u0131 zaten kullan\u0131yorsan\u0131z, bu b\u00f6l\u00fcm\u00fc ge\u00e7ebilirsiniz.  Action Cable&#8217;\u0131 hen\u00fcz kurmad\u0131ysan\u0131z, a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak projenize ekleyebilirsiniz:<\/p>\n<pre><code>rails generate channel ApplicationCable<\/code><\/pre>\n<p>Ard\u0131ndan, config\/cable.yml dosyas\u0131n\u0131  uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re d\u00fczenleyin.  Bu dosya, Action Cable&#8217;\u0131n nas\u0131l \u00e7al\u0131\u015faca\u011f\u0131n\u0131 tan\u0131mlar.  Daha sonra, bir kanal olu\u015fturman\u0131z gerekecek.  Bu kanal, istemci ile sunucu aras\u0131nda ileti\u015fimi y\u00f6netecektir. Bu i\u015flem i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabiliriz:<\/p>\n<pre><code>rails generate channel PresenceChannel<\/code><\/pre>\n<p>Bu komut, app\/channels\/presence_channel.rb dosyas\u0131n\u0131 olu\u015fturur.  Bu dosya, kullan\u0131c\u0131lar\u0131n ba\u011flanma ve ba\u011flant\u0131y\u0131 kesme durumlar\u0131n\u0131 izleyecektir.  Bu dosyay\u0131 a\u015fa\u011f\u0131daki gibi d\u00fczenleyebilirsiniz:<\/p>\n<pre><code class=\"language-ruby\">\nclass PresenceChannel < ApplicationCable::Channel\n  def subscribed\n    stream_from \"presence\"\n  end\n\n  def unsubscribed\n    # Any cleanup needed when channel is unsubscribed\n  end\nend\n<\/code><\/pre>\n<h2>\u0130stemci Taraf\u0131 (JavaScript)<\/h2>\n<p>\u015eimdi, istemci taraf\u0131nda, Action Cable'\u0131 kullanarak sunucuya ba\u011flanacak ve kullan\u0131c\u0131 durumunu g\u00fcncelleyece\u011fiz.  Bunun i\u00e7in, Turbolinks gibi bir k\u00fct\u00fcphane kullan\u0131yorsan\u0131z, sayfa y\u00fcklendi\u011finde veya sayfada herhangi bir de\u011fi\u015fiklik oldu\u011funda  ba\u011flant\u0131y\u0131 yeniden kurmay\u0131 d\u00fc\u015f\u00fcnmelisiniz. Bunun i\u00e7in  JavaScript kodu kullanaca\u011f\u0131z.  \u00d6rne\u011fin,  app\/javascript\/channels\/presence_channel.js dosyas\u0131n\u0131 a\u015fa\u011f\u0131daki gibi olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-javascript\">\nimport consumer from \".\/consumer\"\n\nconsumer.subscriptions.create(\"presence\", {\n  connected() {\n    \/\/ Called when the subscription is ready for use on the server\n    console.log(\"Ba\u011flant\u0131 kuruldu!\");\n  },\n\n  disconnected() {\n    \/\/ Called when the subscription has been terminated by the server\n    console.log(\"Ba\u011flant\u0131 kesildi!\");\n  },\n\n  received(data) {\n    \/\/ Called when there's incoming data on the websocket for this channel\n    console.log(data);\n  }\n});\n<\/code><\/pre>\n<p>Bu kod, Action Cable'a ba\u011flanacak ve ba\u011flant\u0131 durumunu konsola yazd\u0131racakt\u0131r.  Daha geli\u015fmi\u015f uygulamalarda, buradan gelen verileri kullanarak kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc g\u00fcncelleyebilirsiniz. \u00d6rne\u011fin, \u00e7evrimi\u00e7i kullan\u0131c\u0131 listesini dinamik olarak g\u00fcncelleyebilirsiniz.<\/p>\n<h2>Sunucu Taraf\u0131 (Ruby)<\/h2>\n<p>Sunucu taraf\u0131nda,  PresenceChannel'\u0131 kullanarak kullan\u0131c\u0131lar\u0131n ba\u011flant\u0131 durumunu izleyece\u011fiz.  Bu, kullan\u0131c\u0131lar\u0131n ba\u011flan\u0131p ba\u011flant\u0131s\u0131n\u0131 kesti\u011finde tetiklenen olaylar\u0131 kullanarak yap\u0131labilir. Bu olaylar, di\u011fer kullan\u0131c\u0131lara an\u0131nda bildirim g\u00f6ndermek i\u00e7in kullan\u0131labilir.<\/p>\n<p>Bu \u00f6rnekte, kullan\u0131c\u0131lar\u0131n \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 durumunu takip etmek ve bunu di\u011fer kullan\u0131c\u0131lara iletmek i\u00e7in  PresenceChannel'\u0131 kulland\u0131k.  Daha detayl\u0131 bir uygulama i\u00e7in, veritaban\u0131nda kullan\u0131c\u0131lar\u0131n durumunu saklamak ve daha karma\u015f\u0131k mant\u0131klar eklemek gerekebilir.  Bu, uygulama gereksinimlerine ba\u011fl\u0131d\u0131r.  \u00d6rne\u011fin, son \u00e7evrimi\u00e7i zaman\u0131n\u0131 da kaydedebilirsiniz.<\/p>\n<p>Bu geli\u015fmi\u015f \u00f6zelliklerle, uygulaman\u0131zda ger\u00e7ek zamanl\u0131 etkile\u015fimler olu\u015fturabilirsiniz.  \u00d6rne\u011fin, sohbet uygulamas\u0131 geli\u015ftirmek i\u00e7in Action Cable'\u0131 kullanabilir ve kullan\u0131c\u0131lar\u0131n anl\u0131k olarak mesajlar\u0131n\u0131 almalar\u0131n\u0131 sa\u011flayabilirsiniz.  Benzer \u015fekilde, oyun geli\u015ftirmek i\u00e7in de Action Cable'\u0131 kullanabilirsiniz.  Action Cable ile ger\u00e7ek zamanl\u0131 uygulamalar geli\u015ftirmek olduk\u00e7a kolayd\u0131r.  Daha fazla bilgi i\u00e7in, resmi Rails belgelerine g\u00f6z atabilirsiniz. <a href=\"https:\/\/api.rubyonrails.org\/classes\/ActionCable\/Connection\/Base.html\">Action Cable Dok\u00fcmanlar\u0131<\/a><\/p>\n<p>Umar\u0131m bu makale, Ruby on Rails 8 ile Action Cable kullanarak \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 durum \u00f6zelli\u011fi olu\u015fturman\u0131zda yard\u0131mc\u0131 olmu\u015ftur.  Daha fazla soru ve g\u00f6r\u00fc\u015fleriniz i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">web sitemi<\/a> ziyaret edebilir veya bana ula\u015fabilirsiniz.<\/p>\n<p>#Etiketler: Ruby on Rails, Action Cable, \u00c7evrimi\u00e7i, \u00c7evrimd\u0131\u015f\u0131, Ger\u00e7ek Zamanl\u0131, Kullan\u0131c\u0131 Durumu, WebSockets, Rails 8,  JavaScript,  Sunucu, \u0130stemci<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma Merhaba! Bug\u00fcn sizlere Ruby on Rails&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-24234","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma<\/title>\n<meta name=\"description\" content=\"Merhaba! Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r. \u00d6ncelikle, Action Cable&#039;\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r. \u00d6ncelikle, Action Cable&#039;\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-16T15:30:17+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma\",\"datePublished\":\"2025-06-16T15:30:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\"},\"wordCount\":696,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\",\"name\":\"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-06-16T15:30:17+00:00\",\"description\":\"Merhaba! Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r. \u00d6ncelikle, Action Cable'\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma","description":"Merhaba! Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r. \u00d6ncelikle, Action Cable'\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma","og_description":"Merhaba! Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r. \u00d6ncelikle, Action Cable'\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.","og_url":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-06-16T15:30:17+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma","datePublished":"2025-06-16T15:30:17+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/"},"wordCount":696,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/","name":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-06-16T15:30:17+00:00","description":"Merhaba! Bug\u00fcn sizlere Ruby on Rails 8 ve Action Cable kullanarak uygulamalar\u0131n\u0131za ger\u00e7ek zamanl\u0131 \u00e7evrimi\u00e7i\/\u00e7evrimd\u0131\u015f\u0131 kullan\u0131c\u0131 durum \u00f6zelli\u011fi eklemeyi g\u00f6sterece\u011fim. Bu \u00f6zellik, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n anl\u0131k olarak \u00e7evrimi\u00e7i olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmenizi sa\u011flar ve etkile\u015fimi art\u0131r\u0131r. \u00d6ncelikle, Action Cable'\u0131n ne oldu\u011funu ve neden kullanmam\u0131z gerekti\u011fini k\u0131saca a\u00e7\u0131klayal\u0131m.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ruby-on-rails-8-ile-action-cable-kullanarak-cevrimici-cevrimdisi-durum-ozelligi-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ruby on Rails 8 ile Action Cable Kullanarak \u00c7evrimi\u00e7i\/\u00c7evrimd\u0131\u015f\u0131 Durum \u00d6zelli\u011fi Olu\u015fturma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/24234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=24234"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/24234\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=24234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=24234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=24234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}