0Pricing
React Academy · Ders

Süreçler Arası IPC İletişimi

Ana süreç ile React görüntüleyicisi arasında güvenli biçimde ileti göndermek için ipcMain ve ipcRenderer'ı kullanın.

Süreçler Arası IPC İletişimi, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

ipcMain.handle: İstek-Yanıt Deseni

ipcMain.handle, ana süreçte oluşturucu süreçten gelen isteklere yanıt veren adlandırılmış bir kanal kaydeder. Eşzamansız bir işleyici işlevi kabul eder ve bu işlevin dönüş değeri, oluşturucudaki Promise'ın çözümlenen değeri olur. Bu nedenle dosya okuma veya veritabanı sorgulama gibi işlemler için idealdir.

ipcRenderer.invoke: Ana Süreci Çağırma

ipcRenderer.invoke, adlandırılmış bir kanaldan mesaj gönderir ve ana süreç işleyicisinin dönüş değeriyle çözümlenen bir Promise döndürür. Böylece hem ön yükleme betiğinde hem de React bileşenlerinde async/await ile doğal biçimde çalışan temiz bir eşzamansız istek-yanıt deseni oluşur.

contextBridge ile invoke Çağrısını Dışa Açma

Ön yükleme betiği, ipcRenderer.invoke çağrılarını sarmalar ve bunları contextBridge üzerinden dışa aktarır. Örneğin: api.readFile = (filePath) => ipcRenderer.invoke('read-file', filePath). Oluşturucu süreç window.api.readFile(path) işlevini çağırır ve bir Promise alır; işlem temiz ve korumalıdır.

Oluşturucu Süreç ipcRenderer'ı Neden Hiç İçe Aktarmaz

contextIsolation etkinleştirildiğinde oluşturucu süreç require('electron') kullanamaz veya ipcRenderer'ı doğrudan içe aktaramaz; modül kullanılamaz durumdadır. Tüm IPC işlemleri ön yükleme betiğinin contextBridge dışa aktarımı üzerinden gerçekleştirilmelidir. Bunun amacı, XSS saldırılarının IPC erişimi elde etmesini önlemektir.

ipcMain.on: Yanıt Beklemeyen Mesajlar

ipcMain.on, ipcRenderer.send ile gönderilen tek yönlü mesajları dinler; invoke ile gönderilen mesajlardan farklı olarak otomatik bir yanıt kanalı yoktur. Bu yaklaşım, oluşturucu sürecin yanıt beklemediği bildirimler veya komutlar için uygundur; örneğin olayları günlüğe kaydetmek ya da yerel bir bildirim tetiklemek.

Ana Süreçten Oluşturucu Sürece Veri Gönderme

Ana süreç, webContents.send('channel-name', data) kullanarak oluşturucu sürece veri gönderebilir. Bu, ana sürecin iletişimi başlatmasının temel yoludur; örneğin dosya sistemi izleme olaylarını veya yerel menü eylemlerini React kullanıcı arayüzüne iletmek için kullanılır.

ipcRenderer.on: Ön Yüklemede Dinleme

Ön yükleme betiğinde ipcRenderer.on('update', callback), ana işlemden gelen iletiler için bir dinleyici kaydeder. Geri çağırma işlevi olayı ve ana işlemin gönderdiği tüm verileri alır; ardından bunları contextBridge tarafından dışa açılan işlev üzerinden oluşturucuya iletirsiniz.

Olay Dinleyicilerini contextBridge Üzerinden Dışa Açma

Gönderim olayları için sade bir kalıp şöyledir: api.onUpdate = (callback) => ipcRenderer.on('update', (_event, data) => callback(data)). React bileşenleri window.api.onUpdate(setData) çağrısıyla abone olur ve ana işlem yeni veriler gönderdiğinde geri çağırma işlevi durumu günceller.

Temizleme: Olay Dinleyicilerini Kaldırma

Her ipcRenderer.on dinleyicisi, artık gerek kalmadığında bellek sızıntılarını ve yinelenen geri çağırmaları önlemek için kaldırılmalıdır. Ön yükleme işlevi, bir temizleme işlevi döndürmelidir (ör. () => ipcRenderer.removeListener('update', callback)); React bu işlevi useEffect temizleme dönüşünden çağırır.

Güvenlik: IPC Girdilerini Doğrulama

Oluşturucudan gelen IPC girdileri, ana işlem işleyicisinde güvenilmeyen veriler olarak ele alınmalıdır. Dosya yollarını her zaman doğrulayın (yol geçişi saldırılarını önleyin), sorgu parametrelerini temizleyin ve gönderenin kaynağının beklenen kaynak olduğunu denetleyin. Genel amaçlı bir eval veya exec IPC kanalı asla dışa açmayın.

IPC Kanallarını Yapılandırma

Uygulamanız büyüdükçe IPC kanallarını ad alanı düzeni kurallarıyla düzenleyin: 'fs:read-file', 'db:query', 'window:minimize'. Yazım hatalarını önlemek ve yeniden düzenlemeyi daha güvenli hale getirmek için kanal adlarını hem main.js hem de ön yükleme betiği tarafından içe aktarılan ortak bir sabitler dosyasında tutun.

ipcMain.handle İşleyicisinin Dönüş Değeri

Bir ipcMain.handle işleyicisinin döndürdüğü değere ne olur?

Ders Özeti

IPC, Electron iletişiminin omurgasıdır. ipcMain.handle ve ipcRenderer.invoke, oluşturucu tarafından başlatılan işlemler için Promise tabanlı bir istek-yanıt çifti oluşturur. Ana işlem tarafından başlatılan gönderimler için webContents.send ve ipcRenderer.on birlikte çalışır. Oluşturucudaki tüm IPC işlemleri ön yüklemenin contextBridge'i üzerinden yönlendirilmelidir ve bellek sızıntılarını önlemek için dinleyiciler her zaman temizlenmelidir.

Sıkça Sorulan Sorular

“Süreçler Arası IPC İletişimi” dersi ücretsiz mi?

Evet — “Süreçler Arası IPC İletişimi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Süreçler Arası IPC İletişimi” dersinde ne öğreneceğim?

Ana süreç ile React görüntüleyicisi arasında güvenli biçimde ileti göndermek için ipcMain ve ipcRenderer'ı kullanın. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Süreçler Arası IPC İletişimi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Electron Mimarisi: Ana ve Görüntüleyici Süreçleri
  2. React'i Electron ile Kurma
  3. Süreçler Arası IPC İletişimi
  4. Masaüstü Platformları için Paketleme ve Dağıtım
← React Academy Sayfasına Dön