NodeJs sunucumuza kurduktan sonra nodejs ait npm kütüphanesi araçılığı ile socket.io makinemize kurmamız gerekmektedir. socket.io kurulumu yapmak için terminal bağlanmamız yeterli ve aşağıdaki komutu ile kurulum işlemini gerçekleştirebiliriz.
npm install socket.io
Sunucumuza gerekli bütün eklentileri kurduktan sonra artık gelelim işin asıl kısmına. Server.js dosyamızı oluşturumaya, ben altın ve döviz bilgilerini doviz.com web sitesinin apisi ile alıyorum.
var io = require('socket.io').listen(3000);
var Request = require("request");
// https://www.doviz.com/api/v1/golds/all/latest ALTIN KURU
io.on('connection', (socket) => {
Request.get("https://www.doviz.com/api/v1/currencies/all/latest", (error, response, body) => {
if(error) {
return console.dir(error);
}
socket.emit('myData', JSON.parse(body));
});
bilgigetir(socket);
});
function bilgigetir(socket) {
setInterval(function () {
Request.get("https://www.doviz.com/api/v1/currencies/all/latest", (error, response, body) => {
if(error) {
return console.dir(error);
}
socket.emit('myData', JSON.parse(body));
});
}, 10000 );
}
Server.js sunucumuza oluşturduktan sonra nodejs çalıştırmak için terminale node server.js yazmamız yeterlidir. Ancak terminali kapattığınızda server.js dosyası pasif olacak onun için pm2 veya screen kullanmamız gerekmektedir. Pm2 npm aracılığı ile kurabiliriz.
# Kurulumu
npm install -g pm2
#############
# Kullanımı
#############
# server başlatma
pm2 start server.js
# serveri reset atma
#pm2 reload server
# serveri dururma
pm2 stop server
Artık client tarafına geçebiliriz.
<!DOCTYPE html>
<html>
<head>
<title>Socket.io ile Döviz Kuru Alma</title>
</head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:3000');
socket.on('myData',function (data) {
usd = data[0];
eur = data[1];
gbp = data[2];
$('#USDDisplay .name').html(usd.full_name);
//$('#USDDisplay .date').html(timeConverter(usd.update_date));
$('#USDDisplay .seller').html(usd.selling);
$('#USDDisplay .buying').html(usd.buying);
$('#USDDisplay .rate').html(usd.change_rate);
$('#EURDisplay .name').html(eur.full_name);
//$('#EURDisplay .date').html(timeConverter(eur.update_date));
$('#EURDisplay .seller').html(eur.selling);
$('#EURDisplay .buying').html(eur.buying);
$('#EURDisplay .rate').html(eur.change_rate);
$('#GBPDisplay .name').html(gbp.full_name);
//$('#GBPDisplay .date').html(timeConverter(gbp.update_date));
$('#GBPDisplay .seller').html(gbp.selling);
$('#GBPDisplay .buying').html(gbp.buying);
$('#GBPDisplay .rate').html(gbp.change_rate);
});
function timeConverter(UNIX_timestamp){
var a = new Date(UNIX_timestamp * 1000);
var months = ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
var sec = a.getSeconds();
var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
return time;
}
</script>
<body>
<div id="USDDisplay">
<div><span class="name"></span></div>
<div>Alış : <span class="seller"></span></div>
<div>Satış : <span class="buying"></span></div>
<div>Oran : <span class="rate"></span></div>
</div>
<hr>
<div id="EURDisplay">
<div><span class="name"></span></div>
<div>Alış : <span class="seller"></span></div>
<div>Satış : <span class="buying"></span></div>
<div>Oran : <span class="rate"></span></div>
</div>
<hr>
<div id="GBPDisplay">
<div><span class="name"></span></div>
<div>Alış : <span class="seller"></span></div>
<div>Satış : <span class="buying"></span></div>
<div>Oran : <span class="rate"></span></div>
</div>
</body>
</html>
Socket.io ile artık web sitenizde anlık olarak döviz bilgi gösterbilirsiniz. Geri dönüşlerinizi alt kısımdan bizimle paylaşabilirsiniz. İyi günlerde kullanmanız dileğiyle.