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: websocketConnection: 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
- WebSocket Temelleri
- gorilla/websocket Kullanımı
- İletileri Yayınlama
- Bağlantı Yönetimi