January 4

Socket.io

Socket.IO — bu Node.js va browserlar o'rtasida real vaqt rejimida ikki tomonlama aloqa o'rnatishga yordam beruvchi kutubxona desak ham bo'ladi. U WebSocket protokoli asosida ishlaydi, ammo undan tashqari boshqa transport vositalarini ham qo'llab-quvvatlaydi, bu esa uni yanada moslashuvchan qiladi.

Asosiy xususiyatlari:

  1. Ikki tomonlama aloqa: Ma'lumot server va mijoz o'rtasida bir vaqtda harakatlanishi mumkin.
  2. Transport fallback: Agar WebSocket qo'llab-quvvatlanmasa, HTTP polling kabi alternativ transport vositalariga o'tadi.
  3. Avtorizatsiya: Xavfsiz aloqani ta'minlash uchun autentifikatsiya mexanizmlarini qo'llab-quvvatlaydi.

Socket.IO Qanday Ishlaydi?

Socket.IO ikkita asosiy qismini o'z ichiga oladi:

  • Server qismi: Bu server tomonida Node.js yordamida ishlaydi.
  • Client qismi: Browser yoki JavaScript orqali ishlaydi.

Aloqa quyidagi tarzda amalga oshadi:

  1. Mijoz ulanishi: Socket.IO avtomatik ravishda eng mos transport protokolini tanlaydi.
  2. Ma'lumot uzatish: Ma'lumot JSON formatida server va mijoz o'rtasida ketadi.
  3. Aloqani boshqarish: Ulanish uzilgan taqdirda, Socket.IO qayta ulanishni ta'minlaydi.

Socket.io orqali o'zim real loyihada foydalanilgan code orqali namuna ko'rsatib o'taman.

  import { io } from 'socket.io-client';
  useEffect(() => {
    const socket = io(socketEnv, {
      extraHeaders: {
        Authorization: `Bearer ${token}`
      }
    });

    socket.on('connect', () => {
      console.log('Connected.');
    });

    socket.on('message', (data) => {
      console.log(data);
    });
    socket.on('employee-check-in', (data) => {
      console.log(data);
    });

    socket.on('error', (data) => {
      console.log(data);
    });

    socket.on('disconnect', () => {
      console.log('Disconnect.');
    });

    return () => {
      socket.disconnect();
    };
  }, []);

Birinchi o'rinda socket.io sayti orqali install qilish kerak bo'ladi va uni import qilinadi. Socketda event tinglanadi ya'ni hodisani kuzatish desak ham bo'ladi. Namunada employee-check-in eventi tinglangan va u orqali siz keladigan data ni ko'ra olasiz.

Ko'pchilik Socket, Websocket haqida tushunmasligi mumkin bunga oddiy misol telegram va chat yozishmali ilovalarni va saytlarni misol keltirish mumkin.

Shu bilan Socket bo'yicha kichik bir maqolani yakunlayman. Nasib qilsa bu asosida amal ham qilmoqchiman.

Foydalanilgan resurslar: socket.io

Mualliflik huquqiga amal qilinsin!