Swoole Kullanarak Yüksek Performanslı PHP Uygulamaları Oluşturma
Swoole Nedir?
Swoole, PHP için yüksek performanslı bir ağ iletişim çerçevesidir. Asenkron, çok iş parçacıklı ve koroutin gibi özellikler sunarak PHP'nin Node.js gibi yüksek eşzamanlı görevleri yerine getirebilmesini sağlar. TCP, UDP, UnixSocket, HTTP, WebSocket gibi birçok protokolü destekler ve yüksek performanslı web sunucuları, mikro servis mimarileri, gerçek zamanlı iletişim sistemleri gibi uygulamalar oluşturmak için uygundur.
Swoole'un Temel Özellikleri ve Avantajları
- Yüksek Performans: Swoole, C diliyle yazılmıştır ve çok yüksek performansa sahiptir. Asenkron IO ve koroutin destekler, yüksek eşzamanlı talepleri işleyebilir.
- Zengin Fonksiyonlar: Çok çeşitli ağ protokollerini, zamanlayıcıları, proses yönetimini ve hafıza yönetimini destekler, farklı geliştirme ihtiyaçlarını karşılar.
- Kullanım Kolaylığı: Basit ve kullanımı kolay API'ler ve zengin dökümantasyon sunar, geliştiricilerin hızlı bir şekilde işe başlamasına yardımcı olur.
- Yüksek Esneklik: Özelleştirilebilir genişletmeler ve eklentileri destekler, ihtiyaçlara göre esnek bir şekilde uyarlanabilir.
Swoole, yüksek performanslı web uygulamaları ve gerçek zamanlı iletişim sistemleri oluşturmak için ideal bir seçenektir ve küçük ölçekli uygulamalardan büyük kurumsal sistemlere kadar çeşitli projeler için uygundur.
Swoole Kurulumu
Bu makalede, ServBay ortamında Swoole'un nasıl kurulacağını ve kullanılacağını anlatacağız.
TIP
ServBay, geliştiricilere web sitelerini yönetimi kolaylaştırmak için /Applications/ServBay/www
dizinine yerleştirmelerini önerir.
Adım 1: Swoole Uzantısını Kurma
Swoole Uzantısını Etkinleştirin
ServBay, Swoole uzantısını yerleşik olarak içermektedir. Kullanıcıların öncelikle bunu etkinleştirmesi ve PHP'yi yeniden başlatması gerekmektedir. Swoole modülünü etkinleştirme hakkında ServBay'in yerleşik Swoole modülünü nasıl etkinleştiririz başlıklı makaleye bakabilirsiniz.
Adım 2: Proje Dizini Oluşturma
Proje dizini oluşturun ve içine girin:
cd /Applications/ServBay/www
mkdir servbay-swoole-app
cd servbay-swoole-app
2
3
Adım 3: Swoole Sunucu Betiği Oluşturma
Proje dizininde bir server.php
dosyası oluşturun ve basit bir Swoole HTTP sunucusu yazın:
<?php
use Swoole\Http\Server;
use Swoole\Http\Request;
use Swoole\Http\Response;
$server = new Server("0.0.0.0", 9501);
$server->on("start", function (Server $server) {
echo "Swoole HTTP server is started at http://0.0.0.0:9501\n";
});
$server->on("request", function (Request $request, Response $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello ServBay!");
});
$server->start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Adım 4: Swoole Sunucusunu Çalıştırma
Terminalde aşağıdaki komutu çalıştırarak Swoole sunucusunu başlatın:
php server.php
Şu çıktıyı göreceksiniz:
Swoole HTTP server is started at http://0.0.0.0:9501
Adım 5: Swoole Sunucusuna Erişim
Tarayıcıyı açın ve http://localhost:9501
adresine gidin, web sayfasında Hello ServBay!
çıktısını göreceksiniz.
Swoole Kullanarak WebSocket Bağlantılarını İşleme
Swoole ayrıca gerçek zamanlı iletişim uygulamaları oluşturmak için kullanılabilen WebSocket protokolünü de destekler. Swoole kullanarak WebSocket bağlantılarını nasıl işleyeceğimizi anlatacağız.
WebSocket Sunucu Betiği Oluşturma
Proje dizininde bir websocket_server.php
dosyası oluşturun ve basit bir WebSocket sunucusu yazın:
<?php
use Swoole\WebSocket\Server;
use Swoole\Http\Request;
use Swoole\WebSocket\Frame;
$server = new Server("0.0.0.0", 9502);
$server->on("start", function (Server $server) {
echo "Swoole WebSocket server is started at ws://0.0.0.0:9502\n";
});
$server->on("open", function (Server $server, Request $request) {
echo "connection open: {$request->fd}\n";
});
$server->on("message", function (Server $server, Frame $frame) {
echo "received message: {$frame->data}\n";
$server->push($frame->fd, "Hello, {$frame->data}");
});
$server->on("close", function ($ser, $fd) {
echo "connection close: {$fd}\n";
});
$server->start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
WebSocket Sunucusunu Çalıştırma
Terminalde aşağıdaki komutu çalıştırarak WebSocket sunucusunu başlatın:
php websocket_server.php
Şu çıktıyı göreceksiniz:
Swoole WebSocket server is started at ws://0.0.0.0:9502
WebSocket Sunucusuna Bağlanma
WebSocket istemcisi olarak tarayıcıdaki bir WebSocket istemcisini veya diğer WebSocket istemci araçlarını (örneğin wscat
) kullanarak WebSocket sunucusuna bağlanabilirsiniz.
wscat
Kullanarak Bağlanma
wscat
kurun:bashnpm install -g wscat
1WebSocket sunucusuna bağlanın:
bashwscat -c ws://localhost:9502
1Mesaj gönderin:
bash> Hello ServBay
1
Sunucunun dönen mesajını göreceksiniz:
< Hello, Hello ServBay
Yukarıdaki adımlarla, bir Swoole projesi oluşturup çalıştırmayı ve Swoole'un sağladığı özellikleri kullanarak HTTP isteklerini ve WebSocket bağlantılarını işlemeyi başardınız. Swoole'un yüksek performansı ve zengin özellikleri, yüksek eşzamanlı uygulamalar oluşturmak için ideal bir seçimdir.