Raspberry Pi ile socket programlama

Bu yazımızda Raspberry Pi kullanarak basit bir soket program hazırlayacağız. Soket programlama için Node.js bileşenini ve gene node.js içinde bulunan socket.io'yu kullanacağız. Node.js kurulumundan daha önceki yazımızda bahsetmiştik. O yüzden doğrudan socket.io kurulumuna geçeceğim Node.js kurulu sisteminizde socket.io kurmak için tek yapmanız gereken

sudo npm install socket.io

komutunu çalıştırmak. Uygulamamızda bir server bir de client tarafı olacak, benim örneğimde server raspberry üzerinde, client ise Windows bilgisayarımda çalışacak. Önce server tarafını halledelim.

    sudo nano websocket_ornek.js

komutuyla yeni bir js dosyası oluşturuyoruz. Dosya içine yazacağımız kodlar şu şekilde:  

   //uygulamamızın 5000 numaralı portu dinleyeceğini söylüyoruz

var io = require('socket.io').listen(5000);

//socket bağlantısını açıyoruz ve dinlemeye başlıyoruz

io.sockets.on('connection', function (socket) {

    //bir client'ın bağlandığını anlıyoruz

console.log('oturum açıldı');

    //eğer client socket kullanarak ping isimli bir bilgi gönderdiyse raspberry tarafında ekrana ping yazısını yazdırıyoruz.

socket.on('ping', function(data) {

console.log(data);

});

});

    Artık Windows tarafında hazırlayacağımız client uygulamasına geçebiliriz. Client uygulamasını çalıştırabilmek için jquery kütüphanesine ihtiyacımız var http://jquery.com sitesinde kütüphaneyi indirip kaydedebilirsiniz. Ben "jquery-2.1.0.min" versiyonunu kullanacağım. Uygulamamızın klasörü içinde js isimli bir klasör açıp jquery dosyasını oraya atıyorum. Js klasörünün bir üstünde ise index.htm isimli bir dosya açıyoruz, index.htm içerisindeki kodlar ise şu şekilde: Burada raspberry cihazınızın ip adresini ve dinlediğiniz portu kendinize göre ayarlamayı unutmayın.  

<!DOCTYPE
html>

<html
lang="en">

<head>


<title>Test</title>


<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">


<script
src="js/jquery-2.1.0.min.js"></script>


<script
src="http://192.168.2.50:5000/socket.io/socket.io.js"></script>


<script>

        //raspberry ile aramızda açılacak socket'i tanımlıyoruz.


var socket = io.connect('http://192.168.2.50:5000');

    //socket açıldığında bağlandı mesajını vereceğiz.

socket.on('connect', function () {

alert('bağlandı')

})

 

$(document).ready(function () {

$("#hello").click(function () {

        //butona tıklandığında serverde tanıttığımız ping dinleyicisine merhaba bilgisini gönderiyoruz.

socket.emit('ping', 'merhaba');

});

});


</script>

 

 

</head>

<body>


<button
id="hello"
type="button">

Buraya tıklayın!


</button>

</body>

</html>

  Artık uygulamamızı deneyebiliriz. Raspberry tarafında uygulamamızı çalıştırmak için

sudo node websocket_ornek.js

  uygulamayı durdurmak için ctrl+c tuş kombinasyonunu kullanabilirsiniz. Client tarafında ise tek yapmanız gereken index html'yi çalıştırıp bağlandı bilgisini görmek ve butona tıklamak.

Yorum ekle