Mücadele adamı tanıyorum! Ama son zamanlarda Workerman ile çalışıyordum. Bu php çerçevesine rastlamadıysanız, bunu kontrol etseniz iyi olur!
Workerman, hızlı, ölçeklenebilir ağ uygulamalarını kolayca oluşturmak için zaman uyumsuz, olay odaklı bir PHP çerçevesidir. (Bunu kendi web sitelerinden kopyalayıp yapıştırdım hahahah http://www.workerman.net/en/ )
Bunu açıklamanın kolay yolu, web soket programlaması söz konusu olduğunda, gerçekten sahip olmanız gereken tek şeyin sunucunuzda veya yerel sunucunuzda (nerede çalışıyor olursanız olun) 2 dosyaya sahip olmanızdır.
server.php (tüm istemcinin isteğine cevap verecek kaynak kodu)
client.php / client.html (talep maddelerini yapacak kaynak kodu)
Yani temel olarak, önce server.php üzerinde kodu doğrularsınız ve sunucuyu başlatırsınız. Normalde, daha fazla mücadele ekleyen pencereler kullandığım için sunucuyu bu komutla çalıştırıyorum -> php server.php start
Peki xampp kullanıyorsanız. İşte bunu yapmanın bir yolu. Dosyalarınızı koymak istediğiniz yere gidin. Bizim durumumuzda, dosyaları içine koyacağız
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php veya client.html
Bu dosyaların yerel sunucunuzda zaten bulunduğunu varsayarsak. Git Bash'inizi veya Komut Satırınızı veya Terminal'inizi veya hangisini kullanıyorsanız onu açın ve php kitaplıklarını buradan indirin.
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
Genellikle composer aracılığıyla indiririm ve bu dosyaları php betiklerime otomatik olarak yüklerim.
Ve bunu da kontrol edin. Bu gerçekten önemli ! İçin sırayla bu javascript kitaplığındaki ihtiyaç client.php veya client.html ile iletişim kurmak için server.php bunu çalıştırdığınızda.
https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client
Sadece socket.io-client klasörünü server.php ve client.php ile aynı seviyeye kopyalayıp yapıştırdım.
İşte server.php kaynak kodu
<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;
// listen port 2021 for socket.io client
$io = new SocketIO(2021);
$io->on('connection', function($socket)use($io){
$socket->on('send message', function($msg)use($io){
$io->emit('new message', $msg);
});
});
Worker::runAll();
Ve işte client.php veya client.html kaynak kodu
<!DOCTYPE html>
<html>
<head>
<title>Chat</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="chat-messages" style="overflow-y: scroll; height: 100px; "></div>
<input type="text" class="message">
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="socket.io-client/socket.io.js"></script>
<script>
var socket = io.connect("ws://127.0.0.1:2021");
$('.message').on('change', function(){
socket.emit('send message', $(this).val());
$(this).val('');
});
socket.on('new message', function(data){
$('#chat-messages').append('<p>' + data +'</p>');
});
</script>
</html>
Bir kez daha, server.php dosyanızı koyduğunuz komut satırınızı veya git bashınızı veya terminalinizi açın. Yani bizim durumumuzda bu C: / xampp / htdocs / websocket / ve php server.php içinde yazılmıştır start enter tuşuna basın.
Ardından tarayıcınıza gidin ve http: //localhost/websocket/client.php yazın. sitenizi ziyaret etmek için yazın. Sonra o metin kutusuna herhangi bir şey yazın ve hareket halindeyken basit bir php websocket göreceksiniz!
Sadece hatırlaman gerekiyor. Web soket programlamasında, sadece bir sunucuya ve bir istemciye ihtiyaç duyar. Önce sunucu kodunu çalıştırın ve ardından istemci kodunu açın. İşte buyur! Bu yardımcı olur umarım!