0Pricing
Go Academy · Ders

WebSocket Temelleri

Gerçek zamanlı çift yönlü iletişim

WebSocket Temelleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. 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, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Gerçek Zamanlı, İki Yönlü İletişim

HTTP istek-yanıt biçimindedir: istemci sorar, sunucu yanıtlar ve bağlantı (mantıksal olarak) sona erer. Sohbet, canlı panolar ve oyunlar için kalıcı, çift yönlü bir kanala ihtiyacınız vardır. WebSockets bunu sağlar.

Yükseltme El Sıkışması

Bir WebSocket bağlantısı, özel üstbilgilere sahip normal bir HTTP isteği olarak başlar:

  • Upgrade: websocket
  • Connection: Upgrade

Sunucu 101 Switching Protocols yanıtını verir ve TCP soketi tam çift yönlü çerçeveler için yeniden kullanılır.

Neden Yalnızca Yoklama Kullanılmamalı

WebSockets'ten önce uygulamalar yoklama (yinelenen istekler) veya uzun yoklama kullanıyordu. Her ikisi de bant genişliğini boşa harcar ve gecikme ekler. WebSockets tek bir açık bağlantıyı korur; böylece taraflardan biri anında gönderim yapabilir.

İstekler Değil, Çerçeveler

Yükseltmeden sonra veriler HTTP iletileri yerine hafif çerçeveler olarak iletilir. Çerçeveler metin veya ikili olabilir; ayrıca ping/pong ve kapatma için denetim çerçeveleri vardır.

Tam Çift Yönlü İletişim

HTTP'nin aksine, her iki eş de yanıt beklemeden istediği zaman gönderim yapabilir. Sunucu, bir şey değiştiği anda bildirim gönderebilir ve istemci aynı anda girdi gönderebilir.

ws ve wss

http/https gibi WebSockets'in de iki şeması vardır:

  • ws:// şifrelenmemiş
  • wss:// TLS üzerinden (üretimde bunu kullanın)

Standart Kitaplık Desteği

Go'nun standart kitaplığında tek başına net/http içinde WebSocket uygulaması bulunmaz. Toplulukta github.com/gorilla/websocket veya nhooyr.io/websocket kullanılır. Bir sonraki derste gorilla'yı ele alacağız.

import "github.com/gorilla/websocket"

Zihinsel Model

WebSocket'i bir telefon görüşmesi gibi düşününüz:

  • Arama yapmak = HTTP yükseltme el sıkışması
  • Açık hat = kalıcı bağlantı
  • İki yönde konuşmak = çift yönlü çerçeveler
  • Telefonu kapatmak = kapatma çerçevesi

Mesaj Türleri

En önemli iki veri çerçevesi türü şunlardır:

  • Metin çerçeveleri UTF-8 (çoğunlukla JSON) taşır
  • İkili çerçeveleri ham baytlar (protobuf, görseller) taşır

Denetim çerçeveleri (ping, pong, close) bağlantının kendisini yönetir.

WebSocket'lerin Öne Çıktığı Alanlar

WebSocket'ler şu durumlara çok uygundur:

  • Sohbet ve çevrimiçi olma durumu
  • Canlı borsa veya spor skorları
  • İş birliğine dayalı düzenleme
  • Çok oyunculu oyun durumu

Yalnızca sunucudan istemciye tek yönlü iletişim için Sunucu Tarafından Gönderilen Olaylar daha basit olabilir.

Çalıştırılabilir: Kavramı Çerçevelemek

WebSocket kodu harici bir kitaplık gerektirir; bu nedenle burada standart kitaplıktan bir benzetme sunulmaktadır: çerçeve türlerini göstermek amacıyla bir mesajı metin veya ikili olarak sınıflandıran bir işlev.

package main

import (
    "fmt"
    "unicode/utf8"
)

func frameType(data []byte) string {
    if utf8.Valid(data) {
        return "text"
    }
    return "binary"
}

func main() {
    fmt.Println(frameType([]byte("hello")))
    fmt.Println(frameType([]byte{0xff, 0x00, 0x01}))
}

Hızlı Kontrol

WebSocket temellerini anlayıp anlamadığınızı sınayınız.

Özet

WebSocket temellerini öğrendiniz:

  • Kalıcı ve çift yönlü iletişim sağlarlar
  • Bir HTTP yükseltme el sıkışmasıyla (101 yanıtı) başlarlar
  • Veriler metin/ikili çerçeveler olarak akar; denetim çerçeveleri bağlantıyı yönetir
  • Üretimde wss:// kullanınız; Go, gorilla/websocket gibi kitaplıklara dayanır

Sıkça Sorulan Sorular

“WebSocket Temelleri” dersi ücretsiz mi?

Evet — “WebSocket Temelleri” 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 Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“WebSocket Temelleri” dersinde ne öğreneceğim?

Gerçek zamanlı çift yönlü iletişim Go 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.

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

Önceden deneyim gerekmez. CoddyKit'te Go 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 1. dersidir.

“WebSocket Temelleri” 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 Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go 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. WebSocket Temelleri
  2. gorilla/websocket Kullanımı
  3. İletileri Yayınlama
  4. Bağlantı Yönetimi
← Go Academy Sayfasına Dön