Gerçek Zamanlı Uygulamalar Nedir?
WebSocket Nedir ve Neden Kullanılır?
PHP ile WebSocket kullanmanın en büyük avantajı, birden fazla kullanıcının aynı anda etkileşimde bulunabilmesini sağlamaktır. Peki, nasıl çalıştığını daha iyi anlamak için küçük bir örnek üzerinden gidelim.
PHP ile WebSocket Kullanımı
Aşağıda, PHP'de Ratchet kütüphanesiyle basit bir WebSocket sunucusunun nasıl kurulacağını gösteren örnek bir kod parçası bulacaksınız:
composer require cboden/ratchet
// WebSocket server setup
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
class Chat implements MessageComponentInterface {
public function onOpen(ConnectionInterface $conn) {
echo "New connection! ({$conn->resourceId})\n";
}
public function onMessage(ConnectionInterface $from, $msg) {
echo "Message received: $msg\n";
foreach ($from->httpRequest->getConnections() as $client) {
if ($client !== $from) {
$client->send($msg);
}
}
}
public function onClose(ConnectionInterface $conn) {
echo "Connection {$conn->resourceId} has disconnected\n";
}
public function onError(ConnectionInterface $conn, \Exception $e) {
echo "Error: {$e->getMessage()}\n";
$conn->close();
}
}
// WebSocket server to run
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8080
);
$server->run();
Bu örnek, WebSocket üzerinden bir sohbet sunucusu kurmanı sağlar. Her yeni bağlantı açıldığında, sunucu bağlantıyı kabul eder ve mesaj gönderildiğinde, o mesajı bağlı diğer tüm istemcilere iletir.
AJAX ile PHP ve WebSocket Entegrasyonu
PHP ile AJAX kullanmak için basit bir istemci tarafı kodu şu şekilde olabilir:
$(document).ready(function(){
$('#sendMessage').click(function(){
var message = $('#messageInput').val();
$.ajax({
url: 'send_message.php',
type: 'POST',
data: { message: message },
success: function(response){
$('#messages').append(response);
}
});
});
});
Bu kodda, bir mesaj gönderildiğinde AJAX ile PHP’ye veri gönderilir ve sunucudan gelen yanıt, anında sayfada görüntülenir. Bu, sayfa yenilenmeden interaktif bir deneyim sağlar.
WebSocket ve AJAX Birlikteliği
Sonuç
Umarım bu yazı, PHP ile WebSocket ve AJAX kullanarak daha interaktif ve hızlı web uygulamaları geliştirmene yardımcı olmuştur. Şimdi, bu bilgileri kullanarak kendi gerçek zamanlı uygulamanı geliştirmeye başlayabilirsin!