40- كورس Node.js بالعربي – RasPi WebSocket

شرح RasPi WebSocket في Node.js

شرح RasPi WebSocket في Node.js

تعتبر تقنية WebSocket جزءًا مهمًا من تطوير التطبيقات الحديثة حيث توفر قناة اتصال ثنائية الاتجاه بين العميل والخادم. في هذا المقال، سنتعرف على كيفية استخدام WebSocket مع Raspberry Pi وNode.js لإنشاء اتصال فعال وسريع. يعتبر Raspberry Pi منصة رائعة للمشاريع الصغيرة والمبتدئين الذين يرغبون في تعلم البرمجة والتفاعل مع الأجهزة المادية.

إعداد بيئة Node.js على Raspberry Pi

للبدء في استخدام WebSocket على Raspberry Pi، يجب أولاً إعداد بيئة Node.js. يمكن تثبيت Node.js بسهولة على Raspberry Pi باستخدام مدير الحزم. بعد تثبيت Node.js، ننتقل إلى إنشاء مشروع جديد والبدء في كتابة كود WebSocket. يمكنك استخدام مكتبة مثل ‘ws’ لإنشاء خادم WebSocket بسهولة في Node.js.

const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });

server.on('connection', socket => {
    console.log('عميل متصل');
    socket.on('message', message => {
        console.log(`تم استلام الرسالة: ${message}`);
    });
    socket.send('مرحبًا من الخادم!');
});

هذا المثال البسيط يظهر كيفية إنشاء خادم WebSocket يستمع على المنفذ 8080 ويتفاعل [شركة برمجة مصرية] مع العميل عن طريق استقبال الرسائل وإرسال الردود.

التفاعل مع العميل باستخدام WebSocket

بعد إعداد خادم WebSocket، يمكننا إنشاء عميل يتصل بالخادم ويتفاعل معه. يتم ذلك من خلال استخدام WebSocket API في JavaScript على [شركة برمجة مصرية] جانب العميل. يمكنك إنشاء اتصال جديد وإرسال الرسائل واستقبال الردود.

const socket = new WebSocket('ws://localhost:8080');

socket.onopen = () => {
    console.log('تم الاتصال بالخادم');
    socket.send('مرحبًا من العميل!');
};

socket.onmessage = event => {
    console.log(`تم استلام الرد: ${event.data}`);
};

في هذا المثال، عند فتح الاتصال، يرسل العميل رسالة إلى الخادم وينتظر الرد. تُظهر هذه العملية كيفية تفاعل العميل والخادم باستخدام WebSocket لتبادل البيانات بشكل سلس وفوري.

من خلال فهم كيفية إعداد واستخدام WebSocket في Node.js على Raspberry Pi، يمكن للمطورين إنشاء تطبيقات تفاعلية وقوية تتواصل بشكل فوري بين الأجهزة المختلفة، مما يفتح الباب أمام إمكانيات لا حصر لها في مجالات إنترنت الأشياء والتطبيقات التفاعلية.