Bu derste, Go dilinde WebSocket bağlantılarını nasıl kurabileceğinizi ve kullanabileceğinizi öğreneceksiniz. WebSocket ile gerçek zamanlı veri iletişimini nasıl gerçekleştirebileceğinizi göreceksiniz.
Bu dersin amacı, Go dilinde WebSocket kullanarak gerçek zamanlı veri iletişimi yapmayı öğrenmektir. WebSocket, HTTP protokolüne alternatif olarak, çift yönlü ve düşük gecikmeli iletişim sağlar.
WebSocket, web tarayıcıları ve sunucular arasında çift yönlü iletişim sağlayan bir protokoldür. HTTP’den farklı olarak, WebSocket bağlantısı bir kez kurulduktan sonra sürekli açık kalır ve her iki taraf da veri gönderebilir ve alabilir.
Go dilinde WebSocket kullanmak için gorilla/websocket
paketini kullanacağız. Bu paketi kurmak için aşağıdaki komutu kullanabilirsiniz:
go get github.com/gorilla/websocket
Aşağıda basit bir WebSocket sunucusu örneği bulunmaktadır:
package main
import (
"fmt"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
}
func handler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
fmt.Println(err)
return
}
for {
messageType, p, err := conn.ReadMessage()
if err != nil {
fmt.Println(err)
return
}
if err := conn.WriteMessage(messageType, p); err != nil {
fmt.Println(err)
return
}
}
}
func main() {
http.HandleFunc("/ws", handler)
http.ListenAndServe(":8080", nil)
}
Aşağıda basit bir WebSocket istemcisi örneği bulunmaktadır:
<!DOCTYPE html>
<html>
<head>
<title>WebSocket İstemcisi</title>
</head>
<body>
<script type="text/javascript">
var ws = new WebSocket("ws://localhost:8080/ws");
ws.onmessage = function(event) {
var messages = document.getElementById('messages');
messages.innerHTML += '<br>' + event.data;
};
ws.onopen = function(event) {
ws.send("Merhaba Sunucu!");
};
</script>
<div id="messages"></div>
</body>
</html>
WebSocket kullanarak gerçek zamanlı veri iletimi yapmak oldukça basittir. Sunucu ve istemci arasında sürekli açık bir bağlantı olduğu için, her iki taraf da istediği zaman veri gönderebilir ve alabilir.
Bu bölümde, yukarıdaki kodları kullanarak basit bir sohbet uygulaması oluşturacağız. Sunucu tarafında, gelen mesajları tüm bağlı istemcilere yayınlayacağız.
Bu derste, Go dilinde WebSocket kullanarak nasıl gerçek zamanlı veri iletişimi yapabileceğinizi öğrendiniz. WebSocket, özellikle gerçek zamanlı uygulamalar için oldukça kullanışlı bir protokoldür ve Go dilinde kullanımı oldukça basittir.