Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 15000UZS
Размер 43.2KB
Покупки 0
Дата загрузки 17 Март 2026
Расширение docx
Раздел Курсовые работы
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Oddiy mini chat tizimini yaratish

Купить
O'ZBEKISTON RESPUBLIKASI OLIY TA'LIM, FAN VA
INNOVATSIYALAR VAZIRLIGI
TOSHKENT IQTISODIYOT VA PEDAGOGIKA INSTITUTI
AXBOROT TEXNOLOGIYALARI FAKULTETI
Oddiy mini chat tizimini yaratish
mavzusidagi
INDIVIDUAL LOYIHA 
ISHI MUNDARIJA 
KIRISH .......................................................................................................................................................... 3
I BOB. Chat tizimlarining nazariy asoslari ..................................................................................................... 5
1.1. Chat tizimi tushunchasi ......................................................................................................................... 5
1.2. Chat tizimlarining ishlash prinsiplari ..................................................................................................... 7
1.3. Real vaqt rejimidagi muloqot texnologiyalari (WebSocket va boshqa protokollar) ............................ 10
1.4. Chat tizimlarida xavfsizlik asoslari ....................................................................................................... 12
II BOB. MINI CHAT TIZIMINI LOYIHALASH .................................................................................................. 16
2.1. Tizim arxitekturasi va uning asosiy komponentlari ............................................................................. 16
2.2. Ma’lumotlar bazasi tuzilmasi .............................................................................................................. 18
2.3. API va funksional talablar .................................................................................................................... 20
III BOB. MINI CHAT TIZIMINI ISHLAB CHIQISH ............................................................................................ 22
3.1. Server qismi (backend)ni yaratish jarayoni ......................................................................................... 22
3.2. Klient qismi (frontend)ni ishlab chiqish jarayoni ................................................................................. 23
3.3. Xabarlarni real vaqt rejimida uzatishni amalga oshirish ...................................................................... 24
IV BOB. TIZIMNI TESTLASH VA NATIJALAR ................................................................................................. 27
4.1. Test turlari va test muhiti .................................................................................................................... 27
4.2. Funksional test natijalari ..................................................................................................................... 28
4.3. Xavfsizlik va barqarorlik sinovlari ........................................................................................................ 30
XULOSA ...................................................................................................................................................... 32
FOYDALANILGAN ADABIYOTLAR RO‘YXATI ................................................................................................ 34 KIRISH
Bugungi   kunda   axborot   texnologiyalarining   jadal   rivojlanishi   insonlar
o‘rtasidagi   muloqotni   yangi   bosqichga   olib   chiqdi.   Internet   tarmoqlari,   mobil
ilovalar va ijtimoiy platformalarning keng qo‘llanilishi natijasida real vaqt rejimida
axborot  almashish  imkoniyati  yanada  qulay va tezkor  bo‘lib bormoqda. Xususan,
chat   tizimlari   zamonaviy   kommunikatsiyaning   ajralmas   qismiga   aylangan   bo‘lib,
ular  nafaqat kundalik suhbatlar, balki ta’lim, biznes, texnik qo‘llab-quvvatlash va
turli xizmat ko‘rsatish jarayonlarida ham keng qo‘llanilmoqda.
Shu   nuqtai   nazardan,   mini   chat   tizimini   yaratish   bo‘yicha   tadqiqot   amalga
oshirilayotgan   mavzuning   dolzarbligi   juda   yuqori.   Mini   chat   tizimlari   murakkab
bo‘lmagan, ammo funksional jihatdan samarali va kengaytirilishi mumkin bo‘lgan
yechimlarni   o‘z   ichiga   oladi.   Bunday   tizimni   yaratish   orqali   foydalanuvchilar
o‘rtasida   tezkor   muloqotni   yo‘lga   qo‘yish,   real   vaqt   rejimida   xabar   almashish   va
axborotni xavfsiz uzatish imkoniyatlari ta’minlanadi.
Ushbu   bitiruv   loyihasining   maqsadi   —   oddiy,   lekin   funksional   mini   chat
tizimini ishlab chiqish, uni talab etiladigan texnik mexanizmlar asosida loyihalash
va   amaliy   ko‘rinishda   yaratishdan   iborat.   Tadqiqot   davomida   chat   tizimining
nazariy   asoslari,   uning   arxitekturasi,   ishlash   prinsiplari,   ma’lumotlar   almashish
protokollari,   xavfsizlik   talablari   hamda   dasturlash   jarayonida   qo‘llaniladigan
texnologiyalar o‘rganiladi.
Mazkur   loyiha   doirasida   tizimning   asosiy   funksiyalari,   server   va   klient
qismlarining o‘zaro bog‘liqligi, xabarlarni real vaqt rejimida uzatish mexanizmlari
va   tizimning   barqaror   ishlashini   ta’minlovchi   dasturiy   yechimlar   ishlab   chiqiladi.
Shuningdek,   yaratilgan   dasturiy   ta’minot   turli   test   sinovlaridan   o‘tkazilib,   uning
samaradorligi va qo‘llash imkoniyatlari tahlil qilinadi. Tadqiqot   natijalari   nafaqat   oddiy   chat   tizimini   yaratish   bo‘yicha   amaliy
ko‘nikmalarni   mustahkamlashga,   balki   kelgusida   kengaytirilgan   kommunikatsiya
platformalarini   yaratish   uchun   ham   zarur   bo‘lgan   bilimlarni   shakllantirishga
xizmat   qiladi.   Shu   sababli,   loyiha   ilmiy-amaliy   ahamiyatga   ega   bo‘lib,   axborot
texnologiyalari   yo‘nalishida   o‘qiyotgan   talabalar   va   dastur   ishlab   chiquvchilar
uchun muhim o‘rganish manbai hisoblanadi. I BOB. Chat tizimlarining nazariy asoslari
1.1. Chat tizimi tushunchasi
Chat   tizimi   —   bu   foydalanuvchilar   o‘rtasida   elektron   xabar   almashuvini
ta’minlaydigan dasturiy vosita bo‘lib, u real vaqt rejimida tezkor muloqotni yo‘lga
qo‘yish   imkonini   beradi.   Hozirgi   kunda   chat   tizimlari   internetning   eng   asosiy
kommunikatsion bo‘g‘inlaridan biri  hisoblanadi  va ular  jahon bo‘ylab milliardlab
foydalanuvchilar   tomonidan   qo‘llaniladi.   Ushbu   tizimlarning   ommalashuviga   bir
nechta   omillar   sabab   bo‘lgan:   internet   texnologiyalarining   rivoji,   mobil
qurilmalarning   keng   tarqalishi,   onlayn   muloqotga   bo‘lgan   ehtiyojning   ortishi
hamda axborot almashishning qulay va tez formatlarga o‘tishi.
Chat   tizimining   mohiyatida   foydalanuvchi   tomonidan   yuborilgan   xabarni
qabul qiluvchi tomonga yetkazish jarayoni yotadi. Bu jarayon odatda mijoz-server
arxitekturasi   asosida   amalga   oshiriladi.   Ya’ni,   foydalanuvchi   xabarni   yuboradi,
server unga ishlov beradi va uni boshqa foydalanuvchilarga tarqatadi. Zamonaviy
chat tizimlarida bu jarayon WebSocket texnologiyasi yordamida real vaqt rejimida
amalga   oshiriladi.   WebSocket   aloqa   kanali   ikki   tomonlama   bo‘lib,   u
foydalanuvchilar va server o‘rtasida uzluksiz bog‘lanishni ta’minlaydi.
Dastlabki   chat   tizimlari   faqat   matnli   xabar   almashish   imkoniyatini   taklif
qilgan   bo‘lsa,   bugungi   kunda   turli   xil   ko‘rinishlar   mavjud:   ovozli   muloqot,
videokonferensiya,   fayl   almashish,   guruhli   chatlar,   kanallar,   botlar   va   boshqa
funksiyalar.   Shu   bois,   chat   tizimlari   ko‘plab   sohalarda   qo‘llaniladi:   ta’lim
jarayonida   o‘quvchilar   va   o‘qituvchilar   o‘rtasida   muloqot,   biznesda   mijozlarni
qo‘llab-quvvatlash   xizmati,   tibbiyotda   masofaviy   maslahat   berish,   davlat
xizmatlarida   ariza   qabul   qilish   va   boshqalar.   Har   bir   sohada   chat   tizimining
qo‘llanishida   o‘ziga   xos   talablar   bo‘lishi   mumkin,   lekin   asosiy   funksional
tamoyillar o‘zgarishsiz qoladi. Chat   tizimining   ishlash   jarayoni   bir   necha   bosqichlardan   iborat:
foydalanuvchi   tizimga   kiradi,   autentifikatsiya   jarayonidan   o‘tadi,   chat   oynasiga
ulanadi,   so‘ng   xabar   yubora   yoki   qabul   qila   boshlaydi.   Shu   bilan   birga,   xabarlar
odatda   ma’lumotlar   bazasida   saqlanadi,   bu   esa   foydalanuvchilarga   tarixni   ko‘rish
imkonini   beradi.   Ba’zi   chat   platformalarida   esa   xabarlar   vaqtinchalik   saqlanadi
yoki umuman saqlanmaydi — masalan, maxfiylik darajasi yuqori bo‘lgan chatlar.
Chat tizimlari texnik tomondan bir nechta muhim funksiyalarga ega:
1. Real vaqt almashinuvi — xabarlar kechikishsiz uzatiladi.
2.   Ko‘p   foydalanuvchilik   rejimi   —   bir   vaqtning   o‘zida   bir   nechta   insonlar
muloqotda bo‘ladi.
3. Notifikatsiya tizimi — yangi xabarlar haqida ogohlantirish chiqariladi.
4.   Xavfsizlik   mexanizmlari   —   xabarlar   shifrlanadi,   autentifikatsiya
qo‘llaniladi.
5.   Moslashuvchan   interfeys   —   mobil   va   kompyuter   qurilmalari   orqali
foydalanish imkoniyati.
Bugungi   kunda   chat   tizimlari   foydalanuvchi   ehtiyojlariga   qarab   turli
darajalarda murakkablikka ega bo‘lishi mumkin. Oddiy chat tizimlari faqat asosiy
funksiyalarni   o‘z   ichiga   oladi:   xabar   yuborish,   qabul   qilish   va   ko‘rish.   Katta
ko‘lamli   professional   tizimlarda   esa   foydalanuvchi   boshqaruvi,   media   kontent
yuborish,   shaxsiy   va   guruhli   suhbatlar,   tashkiliy   vositalar,   statistik   tahlil,   bot
integratsiyasi   kabi   kengaytirilgan   imkoniyatlar   mavjud   bo‘ladi.   Shu   sababli,   chat
tizimini   yaratish   jarayonida   uning   qaysi   maqsadga   xizmat   qilishi   va   uning
funksional imkoniyatlari oldindan aniq belgilanadi.
Chat   tizimlarining   asosiy   afzalliklaridan   biri   —   ularning   doimiy   rivojlanish
imkoniyatiga   egaligidir.   Dasturlash   texnologiyalari   yangilangan   sari   chat
platformalarining imkoniyatlari ham kengayib bormoqda. Ayniqsa, sun’iy intellekt
va   mashinaviy   o‘rganish   bilan   integratsiya   qilingan   chat   tizimlari   yangi   avlod muloqot   vositalariga   aylanmoqda.   AI-botlar,   avtomatik   javob   beruvchilar   va   fikr
tahlil qiluvchilar misol bo‘la oladi.
Xulosa   qilib   aytganda,   chat   tizimi   zamonaviy   axborot   almashinuvi
jarayonlarining   eng   muhim   bo‘g‘inlaridan   biridir.   U   insonlarning   virtual
muloqotdagi   ehtiyojini   qondiradi,   ish   jarayonlarini   tezlashtiradi,   masofaviy   ish
shakllarini   qo‘llab-quvvatlaydi   va   onlayn   xizmat   ko‘rsatish   imkoniyatlarini
kengaytiradi.   Shundan   kelib   chiqib,   chat   tizimini   o‘rganish   va   uni   yaratish
texnologiyalarini amaliyotga joriy etish informatsion texnologiyalar yo‘nalishidagi
talabalar uchun muhim ko‘nikma hisoblanadi.
1.2. Chat tizimlarining ishlash prinsiplari
Chat   tizimlarining   ishlash   prinsiplari   foydalanuvchilar   o‘rtasida   real   vaqt
rejimida   xabar   almashuvini   ta’minlovchi   texnik   va   dasturiy   mexanizmlar
majmuasidan   iborat.   Tizimning   to‘g‘ri,   barqaror   va   samarali   ishlashi   ushbu
mexanizmlarning  o‘zaro  uyg‘un  faoliyatiga  bog‘liq.  Chat   tizimlari,  asosan,   mijoz
(client) va server o‘rtasidagi axborot almashinuvi asosida ishlaydi. Bu almashinuv
jarayoni an’anaviy HTTP protokollari orqali yoki real vaqt rejimidagi WebSocket
kanallari   orqali   amalga   oshiriladi.   Har   ikki   texnologiya   o‘ziga   xos   afzallik   va
kamchiliklarga   ega   bo‘lib,   chat   tizimlarida   ko‘pincha   ularning   kombinatsiyasi
qo‘llaniladi.
Chat   tizimining   ishlash   jarayoni   foydalanuvchining   tizimga   ulanib,
autentifikatsiyadan   o‘tishidan   boshlanadi.   Autentifikatsiya   jarayoni   tizim
xavfsizligi   uchun   muhim   ahamiyatga   ega   bo‘lib,   foydalanuvchining   haqiqiyligini
tasdiqlashga   xizmat   qiladi.   Bu   bosqichdan   so‘ng   foydalanuvchi   xabar   yuborish
yoki   qabul   qilish   jarayonida   qatnashishi   mumkin.   Xabar   yuborilgandan   keyin dastur   avval   uni   serverga   uzatadi,   server   esa   uni   qayta   ishlaydi   va   tegishli
adresatlarga yetkazadi.
Serverning asosiy vazifasi — xabarlarni qabul qilish, saqlash, yo‘naltirish va
ularni   kerakli   foydalanuvchilarga   yetkazishdan   iborat.   Agar   guruhli   chat   mavjud
bo‘lsa, server xabarni bir vaqtning o‘zida bir nechta foydalanuvchiga yuboradi. Bu
jarayonni   samarali   tashkil   qilish   uchun   server   odatda   navbat   (queue)
mexanizmlaridan foydalanadi. Navbatlar xabarlarning tartib bilan yetkazilishini va
tizim yuklamasining barqaror bo‘lishini ta’minlaydi.
Zamonaviy   chat   tizimlarining   asosiy   qismi   WebSocket   texnologiyasiga
tayanadi. WebSocket  — bu ikki  tomonlama doimiy aloqa kanali  bo‘lib, mijoz va
server   o‘rtasida   bevosita,   uzluksiz   ma’lumot   uzatishni   imkonini   beradi.   Ushbu
texnologiya yordamida foydalanuvchi xabar yuborganda server uni darhol boshqa
foydalanuvchilar   ekranida   ko‘rsatadi.   Bu   jarayon   “real   vaqt”   tushunchasining
asosiy  mohiyatini  tashkil  qiladi. Ya’ni, xabar  yuborilganida hech  qanday sezilarli
kechikish sodir bo‘lmaydi.
Chat   tizimlarining   yana   bir   asosiy   ishlash   prinsipi   —   ma’lumotlarni
tamponlash  (buffering)  va  keshlash   mexanizmlaridan foydalanishdir.  Tamponlash
vaqtinchalik  saqlashni,  keshlash  esa  tez-tez  foydalaniladigan  ma’lumotlarni  qayta
ishlashni  tezlashtiradi. Misol  uchun, foydalanuvchi sahifaga qayta kirganda, tizim
o‘sha   chat   tarixini   tezkor   ko‘rsatish   uchun   keshlangan   ma’lumotlardan
foydalanishi mumkin.
Chat   tizimining   yana   bir   muhim   elementi   —   xabarlarni   saqlash   mexanizmi.
Ba’zi   chat   tizimlarida   xabarlar   serverda   uzoq   vaqt   saqlanadi,   ba’zilarida   esa
vaqtinchalik saqlash qo‘llaniladi. Xabarlarni saqlash ma’lumotlar bazasida amalga
oshiriladi.   Ma’lumotlar   bazasida   har   bir   xabarning   yuborilgan   vaqti,   jo‘natuvchi
ID-si, qabul qiluvchilar ro‘yxati, xabar matni va holati kabi ma’lumotlar saqlanadi. Bunday   tartiblangan   saqlash   tizimga   tartib   va   izchillik   beradi,   shuningdek,
foydalanuvchiga chat tarixini ko‘rish imkoniyatini yaratadi.
Chat   tizimlarining   ishlash   prinsiplari   ichida   xavfsizlik   mexanizmlari   alohida
o‘rin   tutadi.   Xabarlarni   tashqi   aralashuvlardan   himoya   qilish   uchun   shifrlash
algoritmlaridan   foydalaniladi.   Ko‘plab   zamonaviy   chatlar   TLS/SSL   shifrlangan
kanallardan foydalanadi, bu esa ma’lumot uzatish jarayonida ularning o‘g‘irlanish
ehtimolini   deyarli   imkonsiz   qiladi.   Ayrim   chat   tizimlarida   esa   “end-to-end
encryption”   qo‘llanilib,   xabarlar   faqat   jo‘natuvchi   va   qabul   qiluvchi   tomonlar
tomonidan yechiladi.
Chat   tizimlarida   mavjud   yana   bir   muhim   prinsip   —   uzluksizlikni
ta’minlashdir.   Agar   foydalanuvchi   internet   aloqasini   yo‘qotsa   ham,   qayta
ulanayotganda tizim avtomatik ravishda oxirgi chat  holatini tiklab beradi. Buning
uchun server foydalanuvchi holatini kuzatib boradi  va qayta ulanish paytida unga
yetib   kelmagan   xabarlarni   yuboradi.   Bu   turdagi   mexanizm   real   vaqt   rejimidagi
tizimlar uchun juda muhim sanaladi.
Shu bilan birga, chat tizimlarida ishlashni optimallashtirish uchun yuklamani
balanslash   (load   balancing)   texnologiyalari   qo‘llaniladi.   Bu   texnologiya   server
resurslarini   samarali   taqsimlash   orqali   tizimning   barqaror   ishlashini   ta’minlaydi.
Masalan, katta hajmdagi foydalanuvchilar bir vaqtning o‘zida tizimga ulanayotgan
bo‘lsa,   so‘rovlar   turli   serverlarga   taqsimlanadi   va   tizimning   ishlashi
sekinlashmaydi.
Xulosa   sifatida   aytish   mumkinki,   chat   tizimlarining   ishlash   prinsiplari   ko‘p
bosqichli,   o‘zaro   bog‘langan   texnik   jarayonlar   majmuasidan   iborat.   Ular
foydalanuvchi   ehtiyojlarini   qondirish,   real   vaqt   rejimida   muloqotni   ta’minlash   va
ma’lumot xavfsizligini himoya qilishga qaratilgan. Ushbu prinsiplarga asoslangan
chat   tizimlari   yuqori   samaradorlik,   qulaylik  va   ishonchlilik   darajasiga   ega   bo‘lib,
zamonaviy kommunikatsiya jarayonlarining ajralmas qismiga aylangan. 1.3. Real vaqt rejimidagi muloqot texnologiyalari (WebSocket va boshqa
protokollar)
Real   vaqt   rejimidagi   muloqot   texnologiyalari   chat   tizimlarining   eng   muhim
tamoyillaridan   biri   bo‘lib,   foydalanuvchilar   o‘rtasida   xabarlarning   kechikmasdan
yetkazilishini ta’minlaydi. Oddiy HTTP protokoli so‘rov-javob usulida ishlaydi va
bu mexanizm chat tizimlari uchun yetarli emas, chunki HTTP har bir xabar uchun
alohida so‘rov yuborilishini talab qiladi. Shuning uchun real vaqt rejimida uzluksiz
va   ikki   tomonlama   muloqot   yaratish   uchun   maxsus   protokollar   va   texnologiyalar
ishlab chiqilgan. Ularning eng ommaboplaridan biri WebSocket bo‘lib, zamonaviy
chat tizimlarining asosiy tayanch texnologiyasiga aylangan.
WebSocket   texnologiyasining   asosiy   afzalligi   shundaki,   u   klient   va   server
o‘rtasida   doimiy,   ikki   tomonlama   aloqa   kanalini   yaratadi.   HTTP   protokolida
bo‘lgani kabi har safar yangi ulanish ochilmaydi. Aksincha, WebSocket bir marta
ulanadi   va   bog‘lanish   butun   sessiya   davomida   saqlanib   qoladi.   Bu   esa   xabarlarni
yuborish   va   qabul   qilish   jarayonini   sezilarli   darajada   tezlashtiradi.   WebSocket
orqali   uzatiladigan   ma’lumotlar   kichik   hajmga   ega   bo‘lib,   bu   internet   trafikini
tejash imkonini beradi va tizim samaradorligiga ijobiy ta’sir ko‘rsatadi.
WebSocket   texnologiyasining   yana   bir   muhim   jihati   —   serverning   mijozga
tashabbus   bilan   ma’lumot   yuborish   imkoniyatidir.   Bu   shuni   anglatadiki,   server
xohlasa,   mijozni   kutmasdan   unga   xabar,   bildirishnoma   yoki   boshqa   ma’lumotni
yuborishi   mumkin.   Bu   imkoniyat   chat   tizimlarida   yangi   xabarlar   tezkor
ko‘rinishini   ta’minlaydi.   Foydalanuvchi   xabar   yuborilganini   kutmaydi,   aksincha,
xabar darhol ekranida namoyon bo‘ladi. Shu sababli WebSocket real vaqt muloqoti
uchun eng maqbul texnologiyalardan biri hisoblanadi.
Real   vaqt   rejimidagi   muloqot   texnologiyalari   faqat   WebSocket   bilan
chegaralanib   qolmaydi.   Ularning   yana   bir   turi   —   Server-Sent   Events   (SSE)
texnologiyasidir. SSE bir tomonlama aloqa uchun mo‘ljallangan bo‘lib, serverdan mijozga   ma’lumot   oqimini   yuborishga   qodir.   Bu   texnologiya   chat   tizimlarida
kamroq   qo‘llaniladi,   chunki   xabar   yuborishda   mijozdan   serverga   yo‘llanadigan
oqim   unchalik   qulay   emas.   Shunga   qaramay,   SSE   real   vaqt   yangilanishlarni
ko‘rsatish   uchun   ishlatilishi   mumkin,   masalan,   yangilik   lentasi,   bir   tomonlama
bildirishnomalar yoki monitoring tizimlari.
Real   vaqt   protokollaridan   yana   biri   —   Long   Polling   mexanizmidir.   Long
Polling   eski   usul   bo‘lishiga   qaramay,   hali   ham   ayrim   tizimlarda   qo‘llaniladi.   Bu
texnologiya   HTTP   asosida   ishlaydi,   ya’ni   mijoz   serverga   so‘rov   yuboradi,   server
esa   xabar   bo‘lmaguncha   kutadi   va   faqat   yangi   ma’lumot   paydo   bo‘lganda   javob
beradi.   Bu   usul   chat   tizimlarida   vaqtinchalik   yechim   sifatida   foydalanilishi
mumkin,   biroq   WebSocketga   nisbatan   sezilarli   kamchiliklarga   ega:   har   bir
yangilanish   uchun   qayta   so‘rov   yuborish   talab   qilinadi,   resurs   ko‘proq   sarflanadi
va server yuklamasi ortadi.
Zamonaviy   chat   tizimlarida   yana   bir   muhim   texnologiya   —   MQTT
protokolidir.  Bu   asosan   IoT   qurilmalar   uchun   mo‘ljallangan   bo‘lsa-da,  uning   eng
katta afzalligi   — ma’lumotlarni   juda minimal   trafikda tez  yetkazish  qobiliyatidir.
MQTT   publish/subscribe   mexanizmi   asosida   ishlaydi,   bu   esa   muloqotni   yanada
moslashuvchan   qiladi.   Chat   tizimlari   uchun   MQTT   odatda   maxsus,   cheklangan
resurslarga ega tizimlarda qo‘llaniladi.
Texnologiyalar rivojlanishi bilan real vaqt muloqoti yanada mukammallashib
bormoqda.   Masalan,   WebRTC   texnologiyasi   hozirda   videochatlar,
audiomuloqotlar   va   ekran   ulashish   imkoniyatlarini   yaratmoqda.   WebRTC
brauzerlar  o‘rtasida  to‘g‘ridan-to‘g‘ri  aloqa kanalini  o‘rnatishga  imkon beradi, bu
esa   qo‘shimcha   server   yuklamasini   kamaytiradi.   WebRTC   chat   tizimlarining
kengaytirilgan   ko‘rinishlari   uchun   juda   mos   keladi,   ayniqsa   multimedia   muloqoti
talab qilingan hollarda. WebSocket   va   boshqa   real   vaqt   texnologiyalarining   to‘g‘ri   qo‘llanilishi   chat
tizimining   samaradorligi,   xabarlarning   yetkazilish   tezligi,   foydalanuvchi   tajribasi
va   tizimning   umumiy   barqarorligiga   katta   ta’sir   ko‘rsatadi.   Real   vaqt
protokollarining   tanlanishi   ko‘pincha   loyihaning   maqsadi,   tizim   yuklamasi,
foydalanuvchi   soni   va   texnik   imkoniyatlarga   qarab   belgilanadi.   Masalan,   kichik
hajmdagi   mini   chat   tizimi   uchun   WebSocketning   o‘zi   yetarli   bo‘lishi   mumkin,
lekin   katta   korporativ   chat   tizimlari   uchun   WebSocket   bilan   birga   yuk
balanslagichlar,   navbat   tizimlari   va   qo‘shimcha   kechiktirishni   kamaytiruvchi
texnologiyalar ham qo‘llaniladi.
Yakun sifatida aytish mumkinki, real vaqt rejimidagi muloqot texnologiyalari
chat   tizimlarining   asosiy   tayanchi   bo‘lib,   foydalanuvchilar   o‘rtasidagi   tezkor
muloqotni   ta’minlashda   muhim   rol   o‘ynaydi.   WebSocket,   SSE,   Long   Polling,
MQTT,   WebRTC   kabi   texnologiyalar   har   biri   o‘ziga   xos   afzallik   va   qo‘llanish
sohasiga   ega.   Chat   tizimi   yaratishda   ushbu   texnologiyalarni   chuqur   o‘rganish   va
ulardan to‘g‘ri foydalanish dasturiy ta’minotning sifatli ishlashini ta’minlaydi.
1.4. Chat tizimlarida xavfsizlik asoslari
Chat   tizimlarida   xavfsizlik   —   foydalanuvchilar   o‘rtasida   almashinadigan
ma’lumotlarni   himoya   qilish,   ularning   maxfiyligini   ta’minlash   va   tizimning
barqaror ishlashiga  erishish uchun zarur  bo‘lgan eng asosiy tamoyillardan biridir.
Zamonaviy   chat   tizimlarida   xavfsizlikka   oid   talablar   tobora   kuchayib   bormoqda,
chunki   foydalanuvchilarning   shaxsiy   ma’lumotlari,   parollari,   yozishmalar
mazmuni   hamda   fayllar   kiberhujumlar   uchun   asosiy   nishonga   aylangan.   Shu
sababli   chat   tizimlarini   yaratish   jarayonida   xavfsizlik   masalalari   dastlabki
bosqichlardan boshlab e’tibor markazida bo‘lishi lozim. Chat   tizimlaridagi   xavfsizlikning   eng   asosiy   qatlamlaridan   biri   —
autentifikatsiya   jarayonidir.   Autentifikatsiya   foydalanuvchini   tanish   va   uning
tizimga   kirishga   haqli   ekanligini   tasdiqlashni   anglatadi.   Oddiy   chat   tizimlarida
foydalanuvchi   login   va   parol   orqali   tizimga   kiradi,   murakkab   tizimlarda   esa   ikki
faktorli   autentifikatsiya   (2FA),   SMS-kodlar,   elektron   pochta   tasdiqlari   yoki
biometrik   aniqlash   usullari   qo‘llaniladi.   Avtorizatsiya   esa   foydalanuvchiga   qaysi
resurslardan   foydalanishga   ruxsat   berilganini   belgilaydi.   Masalan,   oddiy
foydalanuvchi   faqat   o‘z   yozishmalarini   ko‘ra   oladi,   administrator   esa   barcha
chatlarni boshqarish imkoniyatiga ega bo‘lishi mumkin.
Xavfsizlikning   navbatdagi   muhim   bosqichi   —   ma’lumotlarni   shifrlashdir.
Shifrlash   xabarlarning   uchinchi   shaxslar   tomonidan   o‘qilishining   oldini   oladi.
Hozirda   eng   ko‘p   ishlatiladigan   shifrlash   standartlaridan   biri   TLS/SSL   bo‘lib,   u
internet   orqali   uzatilayotgan   barcha   xabarlarning   himoyalangan   kanal   orqali
o‘tishini   ta’minlaydi.   Bundan   tashqari,   mashhur   chat   tizimlarida   end-to-end
encryption   (E2EE)   keng   qo‘llanila   boshlagan.   Bu   texnologiya   xabarlarni   faqat
jo‘natuvchi   va   qabul   qiluvchi   uchlarida   shifrlaydi,   server   esa   shifrlangan
ma’lumotni ko‘ra olmaydi. Shu sababli xabarlar o‘rtada ushlab qolinsa ham, ularni
yechib bo‘lmaydi.
Chat   tizimlarida   xavfsizlikning   yana   bir   muhim   jihati   —   ma’lumotlarni
saqlash   jarayonini   himoyalashdir.   Foydalanuvchilar   tomonidan   yuboriladigan
xabarlar,   fayllar,   tasvirlar,   audio   yoki   video   ma’lumotlar   ko‘pincha   serverda
saqlanadi.   Agar   ma’lumotlar   bazasi   yetarli   darajada   himoyalanmagan   bo‘lsa,
tajovuzkorlar unga kirib, foydalanuvchilarning shaxsiy ma’lumotlariga ega bo‘lishi
mumkin.   Shu   sababli   ma’lumotlar   bazasi   alohida   shifrlash   algoritmlari   bilan
himoyalanishi  va  unga   kirish  qat’iy  nazorat  ostida   bo‘lishi  zarur.  Zaxira  nusxalar
ham   muntazam  ravishda  yaratilishi  lozim,  chunki  tizimga  qilingan  hujumlar   yoki texnik nosozliklar tufayli ma’lumotlarning yo‘qolishi katta talafotlarga olib kelishi
mumkin.
Chat  tizimlarida xavfsizlikni ta’minlash  bo‘yicha yana bir muhim  mexanizm
—   kiruvchi   va   chiquvchi   so‘rovlarni   filtrdan   o‘tkazishdir.   Xususan,   tizim   SQL
injection,   XSS,   CSRF   kabi   hujumlardan   himoyalangan   bo‘lishi   kerak.   Masalan,
foydalanuvchi   kiritayotgan   matn   tarkibida   zararli   kod   mavjud   bo‘lsa,   tizim   uni
aniqlab,   neutralizatsiya   qilishi   lozim.   Bundan   tashqari,   serverga   bo‘lgan
so‘rovlarda   autentifikatsiya   tokenlari   qo‘llanilib,   har   bir   so‘rov   vakolatli   ekanligi
tekshiriladi.
Chat tizimlarida spamlarga qarshi himoya choralari ham muhim hisoblanadi.
Spammerlar   chat   tizimlarini   noqonuniy   reklama,   zararli   havolalar   yoki   zararli
fayllar tarqatish uchun ishlatishi  mumkin. Bunday holatlarning oldini olish uchun
tizimda avtomatik filtrlash, foydalanuvchini vaqtincha bloklash, captcha joriy etish
kabi   texnikalar   qo‘llaniladi.   Shuningdek,   foydalanuvchilar   tomonidan   yuborilgan
fayllar   viruslardan   tekshirilishi   va   zararli   fayllar   avtomatik   ravishda   rad   etilishi
kerak.
Xavfsizlikning   yana   bir   omili   —   tarmoq   darajasidagi   himoyadir.   Serverlar
xavfsiz   tarmoqlarda   joylashtirilishi,   DDoS   hujumlariga   qarshi   himoya
mexanizmlariga   ega   bo‘lishi,   xavfsizlik   devorlari   (firewall)   va   yuk   balanslovchi
qurilmalar   bilan   mustahkamlanishi   lozim.   Ayniqsa,   real   vaqt   rejimidagi   chat
tizimlarida   serverga   bir   vaqtning   o‘zida   minglab   foydalanuvchilar   ulanayotgani
sababli serverlarga yuklanishni kamaytirish juda muhim.
Chat   tizimlariga   taalluqli   yana   bir   xavfsizlik   jihati   —   foydalanuvchi
maxfiyligini   ta’minlashdir.   Foydalanuvchining   onlayn   holati,   o‘qilgan   xabarlar
holati,   profil   ma’lumotlari   va   boshqa   shaxsiy   ma’lumotlar   qat’iy   nazorat   ostida
bo‘lishi,   ularning   tarqalishiga   yo‘l   qo‘ymaslik   kerak.   Tizim   foydalanuvchilarning
roziligisiz   ma’lumotlarni   uchinchi   tomonga   uzatmasligi,   maxfiylik   siyosati   aniq belgilangan  bo‘lishi   va  foydalanuvchi   istasa  o‘z  ma’lumotlarini   tizimdan  o‘chirib
tashlash imkoniga ega bo‘lishi lozim.
Yakun   sifatida   aytish   mumkinki,   chat   tizimlarida   xavfsizlik   ko‘p   qavatli   va
murakkab mexanizmlar tizimidan iborat bo‘lib, har bir bosqichi o‘zaro bog‘langan
holda ishlaydi. Autentifikatsiya, avtorizatsiya, shifrlash, xavfsiz ma’lumot saqlash,
xavfsizlik   devorlari,   hujumlardan   himoya   va   maxfiylik   siyosati   chat   tizimining
ishonchli   ishlashini   ta’minlovchi   asosiy   tamoyillardir.   Chat   tizimini   yaratishda
ushbu   tamoyillarni   to‘liq   o‘rganish   va   ularga   qat’iy   amal   qilish   tizimning
barqarorligi hamda foydalanuvchilar ishonchi uchun juda muhim hisoblanadi. II BOB. MINI CHAT TIZIMINI LOYIHALASH
2.1. Tizim arxitekturasi va uning asosiy komponentlari
Mini   chat   tizimini   loyihalash   jarayonidagi   eng   muhim   bosqichlardan   biri   —
bu   tizim   arxitekturasini   aniqlashdir.   Arxitektura   tizimning   umumiy   tuzilishini,
uning komponentlari qanday ishlashini, ular o‘zaro qanday ma’lumot almashishini
belgilab   beradi.   To‘g‘ri   tanlangan   arxitektura   tizimning   barqaror,   tez   va
kengaytirishga   qulay   bo‘lishini   ta’minlaydi.   Chat   tizimlari   real   vaqt   rejimida
ishlashi   talab   qilinadigan   murakkab   dasturiy   tizimlar   toifasiga   kirganligi   sababli,
ularning arxitekturasi puxta va yaxshi rejalashtirilgan bo‘lishi zarur.
Mini   chat   tizimi,   odatda,   mijoz–server   (client–server)   arxitekturasiga
asoslanadi.   Bu   arxitektura   ikki   asosiy   qatlamdan   tashkil   topgan:   mijoz   (client)
qismi   va   server   (backend)   qismi.   Mijoz   qismi   foydalanuvchi   bilan   bevosita
muloqotda   bo‘lib,   uning   yuborgan   xabarlarini   serverga   uzatadi,   serverdan   kelgan
xabarlarni   esa   foydalanuvchi   interfeysida   ko‘rsatadi.   Server   qismi   esa   barcha
asosiy jarayonlarni boshqaradi: xabarlarni qabul qiladi, qayta ishlaydi, saqlaydi va
kerakli foydalanuvchilarga yetkazadi.
Arxitekturaning   eng   muhim   bo‘g‘inlaridan   biri   —   bu   real   vaqt   muloqot
kanalidir.   Mini   chat   tizimi   uchun   ko‘pincha   WebSocket   texnologiyasi   asosida
qurilgan kanal ishlatiladi. WebSocket orqali mijoz va server o‘rtasida doimiy, ikki
tomonlama   bog‘lanish   yaratiladi,   bu   esa   xabarlarning   kechikishsiz   uzatilishiga
xizmat   qiladi.   WebSocket   ulanishi   chat   tizimining   yuragi   hisoblanib,   u   barcha
xabarlar oqimini boshqaradi.
Tizimning muhim komponentlaridan yana biri — ma’lumotlar bazasidir. Chat
tizimi   doimiy   ravishda   ma’lumot   almashuvi   amalga   oshiriladigan   platforma
bo‘lgani   uchun   xabarlar   va   foydalanuvchi   ma’lumotlari   tartibli   va   xavfsiz   tarzda
saqlanishi   shart.   Ma’lumotlar   bazasida   foydalanuvchilar   ro‘yxati,   xabarlar   tarixi, xabar   yuborilgan   vaqt,   jo‘natuvchi   identifikatori,   foydalanuvchi   holati   kabi
ma’lumotlar   saqlanadi.   Mini   chat   tizimi   uchun   SQLite,   PostgreSQL   yoki
MongoDB kabi yengil va tezkor DBMS turlari mos keladi.
Arxitekturada   API   (Application   Programming   Interface)   ham   alohida
ahamiyatga ega. API  mijoz qismi  bilan server  o‘rtasidagi  klassik HTTP so‘rovlar
orqali   bajariladigan   jarayonlarni   boshqaradi.   Masalan,   foydalanuvchi   ro‘yxatdan
o‘tishi,   tizimga   kirishi,   profil   ma’lumotlarini   o‘zgartirishi   kabi   funksiyalar   API
orqali   amalga   oshiriladi.   Aksincha,   xabarlarni   uzatish   jarayoni   WebSocket   orqali
boshqariladi, chunki u real vaqtni ta’minlaydi.
Mini   chat   tizimining   yana   bir   tarkibiy   qismi   —   xabarlarni   qayta   ishlash
modulidir.   Ushbu   modul   xabarlarni   qabul   qilish,   formatlash,   filtrlash   va   kerakli
foydalanuvchilarga   yo‘naltirish   bilan   shug‘ullanadi.   Agar   tizim   guruhli   chatni
qo‘llasa,   yo‘naltirish   jarayoni   yanada   murakkablashadi,   chunki   bitta   xabar   bir
necha foydalanuvchiga yetkazilishi kerak bo‘ladi. Buning uchun server xabarlarni
turli  bog‘lanishlar   bo‘yicha   taqsimlaydi  va  har  bir   foydalanuvchiga   alohida  kanal
orqali yuboradi.
Mini   chat   tizimining   arxitekturasi   shuningdek,   xavfsizlik   komponentlarini
ham   o‘z   ichiga   oladi.   Autentifikatsiya,   avtorizatsiya,   tokenlar   bilan   ishlash,
ma’lumotlarni shifrlash va seanslarni boshqarish kabi jarayonlar maxsus xavfsizlik
moduli   tomonidan   amalga   oshiriladi.   Bu   modul   tizimning   ishonchliligini
ta’minlaydi   va   ruxsatsiz   kirishlarning   oldini   oladi.   Chat   tizimlarida   parollar
shifrlangan holatda saqlanadi, WebSocket ulanishlari esa TLS orqali himoyalangan
bo‘lishi kerak.
Arxitekturani   loyihalashda   yana   bir   muhim   omil   —   bu   kengayuvchanlik
(scalability)   masalasidir.   Agar   chat   tizimi   kelajakda   ko‘proq   foydalanuvchilarni
qamrab   olishi   kutilayotgan   bo‘lsa,   serverlar   orasida   yuk   balansi   taqsimlanishi   va
vertikal   yoki   gorizontal   kengaytirish   imkoniyatlari   inobatga   olinishi   kerak.   Katta tizimlarda   xabar   oqimini   boshqarish   uchun   broker   texnologiyalari   (RabbitMQ,
Kafka) ham joriy qilinadi.
Mini   chat   tizimining   arxitekturasi   foydalanuvchilar   uchun   qulay   bo‘lishi,
dastur  tez ishlashi  va tizimni  kelajakda  oson kengaytirish imkonini  berishi  kerak.
Shuning   uchun   arxitektura   dastlabki   bosqichda   puxta   o‘ylangan,   modul   tarzida
tashkil qilingan va aniq chegaralangan funksiyalardan iborat bo‘lishi lozim.
2.2. Ma’lumotlar bazasi tuzilmasi
Mini chat tizimining samarali ishlashi bevosita ma’lumotlar bazasining to‘g‘ri
loyihalanganiga   bog‘liq.   Chunki   chat   tizimi   doimiy   ravishda   xabarlarni   qabul
qiladi,   saqlaydi,   ularga   ishlov   beradi   va   foydalanuvchilarga   yetkazadi.   Agar
ma’lumotlar   bazasi   tartibli   va   mantiqiy   tuzilgan   bo‘lmasa,   tizimning   umumiy
ishlashida kechikishlar, xatolar yoki ma’lumotlarning yo‘qolishi  kabi muammolar
yuzaga   kelishi   mumkin.   Shu   bois,   ma’lumotlar   bazasining   tuzilishini   loyihalash
chat tizimi yaratish jarayonidagi eng muhim bosqichlardan biri hisoblanadi.
Mini   chat   tizimi   uchun   ma’lumotlar   bazasi   odatda   bir   nechta   asosiy
jadvallardan   iborat   bo‘ladi:   foydalanuvchilar   jadvallari,   xabarlar   jadvallari,   guruh
yoki   kanal   jadvallari   (agar   qo‘llansa),   sessiya   va   autentifikatsiya   bilan   bog‘liq
jadvallar.   Har   bir   jadvalning   o‘z   vazifasi,   o‘zaro   bog‘liqligi   va   o‘ziga   xos
cheklovlari   mavjud.   To‘g‘ri   tashkil   etilgan   SXEMA   (schema)   chat   tizimi   uchun
asos bo‘lib xizmat qiladi.
Foydalanuvchilar jadvali (Users) eng muhim jadvallardan biridir. Bu jadvalda
foydalanuvchining nomi, login, paroli, elektron pochtasi, ro‘yxatdan o‘tgan vaqti,
holati   (online/offline),   profil   rasmi   kabi   ma’lumotlar   saqlanishi   mumkin.   Parollar
hech   qachon   ochiq   matn   sifatida   saqlanmasligi,   balki   hashing   algoritmlari
yordamida   shifrlangan   holda   saqlanishi   zarur.   Masalan,   SHA-256   yoki   bcrypt algoritmlari   ushbu   maqsad   uchun   keng   qo‘llaniladi.   Bu   esa   foydalanuvchi
ma’lumotlarining xavfsizligini ta’minlaydi.
Xabarlar   jadvali   (Messages)   chat   tizimining   yuragi   hisoblanadi.   Ushbu
jadvalda foydalanuvchi tomonidan yuborilgan har bir xabar alohida yozuv sifatida
saqlanadi.   Xabarning   identifikatori,   matni,   yuborilgan   vaqti,   kim   tomonidan
yuborilgani,   kimga   yuborilgani   yoki   qaysi   chat   kanaliga   tegishli   ekani,   xabar
o‘qilgan-o‘qilmagan   holati,   xabarning   turi   (matn,   rasm,   ovozli   xabar)   kabi
maydonlar   mavjud   bo‘ladi.   Xabarlar   soni   juda   tez   ko‘payishi   mumkin   bo‘lgani
uchun ushbu jadval samarali indekslash texnikalari bilan ta’minlanishi kerak.
Agar chat tizimi guruhli chat funksiyasiga ega bo‘lsa, unda Guruhlar (Groups)
va   Guruh   a’zolari   (GroupMembers)   jadvallari   ham   bo‘lishi   zarur.   Guruhlar
jadvalida   guruhning   nomi,   yaratilgan   vaqti,   tavsifi   kabi   ma’lumotlar   bo‘lsa,
GroupMembers   jadvali   orqali   qaysi   foydalanuvchi   qaysi   guruhga   tegishli   ekani
belgilanadi.   Bu   yondashuv   guruh   tizimini   yanada   moslashuvchan   qiladi   va   yangi
funksiyalar qo‘shishga imkon yaratadi.
Shuningdek,   chat   tizimlarida   foydalanuvchilarning   tizimga   kirish   jarayonini
boshqarish   uchun   sessiya   (Sessions)   jadvallari   qo‘llaniladi.   Bu   jadvalda
foydalanuvchining   tizimga   kirgan   vaqti,   foydalanuvchi   identifikatori,   token
ma’lumotlari,   so‘nggi   faol   bo‘lgan   vaqti   kabi   ma’lumotlar   saqlanadi.   Sessiyalar
yordamida tizim foydalanuvchilarning onlayn yoki oflayn holatini aniq belgilaydi
va WebSocket ulanishlarini to‘g‘ri boshqaradi.
Ma’lumotlar   bazasini   loyihalashda   normalizatsiya   tamoyillari   muhim   rol
o‘ynaydi. Normalizatsiya ortiqcha ma’lumotlarni kamaytiradi, jadvallar o‘rtasidagi
bog‘liqlikni tartibga soladi va qidiruv jarayonlarini optimallashtiradi. Masalan, bir
foydalanuvchining   ma’lumotlarini   faqat   bitta   joyda   saqlash   orqali   takroriy
yozuvlardan qochish mumkin. Bu tizimni tezroq va barqarorroq qiladi. Chat   tizimlari   ko‘p   hollarda   real   vaqt   rejimida   ishlaganligi   sababli,
ma’lumotlar   bazasining   tezkor   javob   berishi   juda   muhim.   Shu   sababli,   yengil   va
samarali   DBMS   turlaridan   foydalanish   tavsiya   etiladi.   Kichik   lohiyalarda   SQLite
ideal   bo‘lishi   mumkin,  chunki   u  sodda,  yengil  va  oson   integratsiyalanadi.  Ammo
foydalanuvchi   soni   ortib   boradigan   tizimlarda   PostgreSQL   yoki   MongoDB   kabi
kuchliroq tizimlar ishlatiladi. Relatsion ma’lumotlar bazalari qat’iy struktura talab
qilsa, NoSQL tizimlar modullashuv va kengayuvchanlikni osonlashtiradi.
Ma’lumotlar   bazasi   xavfsizligini   ta’minlash   ham   juda   muhim   hisoblanadi.
Buning   uchun   bazaga   kirish   uchun   rollar   asosida   ruxsat   belgilash,   ma’lumotlar
shifrlanishi,   zaxira   nusxalari   muntazam   yangilanib   borilishi,   serverlarga   kirish
faqat autentifikatsiya orqali amalga oshirilishi zarur. Bundan tashqari, ma’lumotlar
bazasi   ustida   bajariladigan   barcha   amallar   log   ko‘rinishida   saqlanib   borilishi
kuzatuv va tahlil jarayonlarini osonlashtiradi.
Yakun   sifatida   aytish   mumkinki,   mini   chat   tizimining   ma’lumotlar   bazasi
tuzilmasi   tizimning   umumiy   ishlash   samaradorligi,   xabarlarning   saqlanishi,   qayta
ishlanishi   va   foydalanuvchilar   o‘rtasidagi   muloqot   sifatiga   bevosita   ta’sir
ko‘rsatadi. To‘g‘ri loyihalangan ma’lumotlar bazasi chat tizimining uzluksiz va tez
ishlashini   ta’minlab,   uning   kelajakda   kengaytirilishiga   ham   keng   imkoniyatlar
yaratadi.
2.3. API va funksional talablar
Mini chat tizimini ishlab chiqishda API (Application Programming Interface)
tizimning   eng   asosiy   qismiga   aylanadi.   Chunki   API   mijoz   (client)   qismi   bilan
server   (backend)   o‘rtasidagi   barcha   ma’lumot   almashinuvi   mexanizmini
ta’minlaydi. Chat tizimi ko‘p bosqichli jarayonlardan iborat bo‘lgani sababli, API
interfeysi   ham   aniq,   to‘g‘ri   strukturalangan   va   xavfsiz   bo‘lishi   lozim.   API   orqali foydalanuvchi ro‘yxatdan o‘tadi, tizimga kiradi, profil ma’lumotlarini o‘zgartiradi,
xabarlarni yuboradi yoki o‘qiydi. Real vaqt rejimidagi xabar almashish esa alohida
WebSocket kanali orqali boshqariladi.
Chat   tizimi   uchun   API-ni   loyihalashdan   avval,   tizimning   funksional
talablarini to‘liq aniqlab olish zarur. Funksional talablar tizimning nimani bajarishi,
foydalanuvchi undan nimalarni kutishi va har bir jarayon qanday amalga oshirilishi
kerakligini   belgilaydi.   Bu   talablar   nafaqat   tizimning   dastlabki   versiyasini
yaratishda,   balki   uni   keyinchalik   kengaytirishda   ham   asosiy   rol   o‘ynaydi.   Mini
chat tizimi uchun asosiy funksional talablar quyidagilar bo‘lishi mumkin: III BOB. MINI CHAT TIZIMINI ISHLAB CHIQISH
3.1. Server qismi (backend)ni yaratish jarayoni
Mini chat tizimini ishlab chiqish jarayonining eng muhim bosqichlaridan biri
—   bu   server   (backend)   qismini   yaratishdir.   Backend   tizimning   barcha   asosiy
jarayonlarini   boshqaradi:   foydalanuvchilarni   autentifikatsiya   qilish,   xabarlarni
qabul qilish va qayta ishlash, ma’lumotlar bazasiga ulanish, WebSocket orqali real
vaqt   muloqotini   tashkil   etish   hamda   tizimning   umumiy   barqarorligini   ta’minlash.
Shuning   uchun   server   qismi   puxta,   xavfsiz   va   samarali   tarzda   ishlab   chiqilishi
zarur.
Server   qismi   odatda   uch   asosiy   qatlamdan   iborat:   API   qatlami,   ma’lumotlar
bazasi qatlami, va real vaqt muloqot qatlami. API qatlami HTTP so‘rovlarini qabul
qiladi va foydalanuvchi bilan bog‘liq jarayonlarni boshqaradi. Ma’lumotlar bazasi
qatlami   xabarlar   va   foydalanuvchilar   haqidagi   ma’lumotlarni   saqlaydi.   Real   vaqt
qatlami   esa   WebSocket   texnologiyasi   orqali   foydalanuvchilar   o‘rtasida   uzluksiz
muloqotni  yo‘lga  qo‘yadi.  Ushbu  uch   qatlamning  uyg‘un  ishlashi  chat  tizimining
to‘g‘ri ishlashini ta’minlaydi.
Serverni   yaratishda   eng   avvalo   texnologiya   tanlovi   amalga   oshiriladi.   Mini
chat   tizimi   uchun   Python   dasturlash   tili   keng   qo‘llaniladi,   chunki   u   sodda
sintaksisga   ega   va   WebSocket   bilan   ishlaydigan   kuchli   kutubxonalar   mavjud.
“FastAPI”,   “Flask-SocketIO”   yoki   “Django   Channels”   kabi   freymvorklar   chat
tizimi   yaratish   uchun   eng   optimal   variantlardan   hisoblanadi.   Masalan,   FastAPI
yuqori   tezlikda   ishlashi   va   WebSocketni   qo‘llab-quvvatlashi   bilan   ajralib   turadi.
Flask esa yengil va sodda bo‘lgani uchun kichik loyihalar uchun qulay hisoblanadi.
Backend   yaratishning   birinchi   bosqichi   —   bu   loyiha   strukturasini   tashkil
etish.   Kodlar   tartibli   bo‘lishi   uchun   alohida   papkalar   yaratiladi:   “routes”   –   API
yo‘nalishlari,   “models”   –   ma’lumotlar   tuzilmalari,   “database”   –   baza   bilan ishlovchi   fayllar,   “websocket”   –   real   vaqt   muloqoti   uchun   mas’ul   modul,
“services”   –   yordamchi   funksiyalar   saqlanadigan   papkalar.   Bunday   struktura
kelajakda loyihani kengaytirishni osonlashtiradi.
Keyingi   bosqich   —   foydalanuvchilarni   ro‘yxatdan   o‘tkazish   va
autentifikatsiya qilish modullarini yaratish. Bunda API foydalanuvchidan login va
parol   ma’lumotlarini   qabul   qiladi,   parolni   hashing   algoritmi   yordamida
himoyalangan   holga   keltiradi   va   ma’lumotlar   bazasiga   saqlaydi.   Tizimga   kirish
paytida   foydalanuvchi   token   oladi,   bu   token   har   bir   keyingi   so‘rovni
autentifikatsiya   qilish   uchun   ishlatiladi.   Tokenlar   JWT   (JSON   Web   Token)
formatida bo‘lishi mumkin, chunki u xavfsiz va keng qo‘llaniladi.
3.2. Klient qismi (frontend)ni ishlab chiqish jarayoni
Klient   qismi   (frontend)   mini   chat   tizimining   foydalanuvchi   bilan   bevosita
aloqa   qiluvchi   qismidir.   Foydalanuvchi   tizimga   kirishi,   xabar   yuborishi,   qabul
qilishi, profil ma’lumotlarini boshqarishi — bularning barchasi aynan klient orqali
amalga   oshadi.   Shu  bois,   frontend   qismini   yaratish   jarayonida   qulaylik,   soddalik,
tezkorlik va interfeysning intuitivligi eng muhim tamoyillardan hisoblanadi. Klient
foydalanuvchi   tajribasini   belgilab   beruvchi   asosiy   qatlam   bo‘lgani   uchun,   uning
dizayni va funksionalligi puxta o‘ylangan bo‘lishi zarur.
Frontend   yaratishning   birinchi   bosqichi   —   texnologiyani   tanlash.   Chat
tizimlari   uchun   odatda   uch   asosiy   yo‘nalishdan   biri   tanlanadi:   an’anaviy
HTML/CSS/JavaScript   asosidagi   yengil   interfeys,   “React”,   “Vue.js”   kabi
zamonaviy JavaScript freymvorklari yoki mobil qurilmalar uchun alohida interfeys
yaratish   (Android/iOS).   Mini   chat   tizimi   uchun   sodda   va   real   vaqtga   moslashgan
WebSocket   integratsiyasini   qo‘llab-quvvatlaydigan   yengil   frontend   yechimi tanlanadi. Agar loyiha yirik bo‘lsa, React kabi komponentli arxitektura juda qulay
bo‘ladi.
Interfeysning   asosiy   elementlari   —   kirish   oynasi,   ro‘yxatdan   o‘tish   sahifasi,
chat   oynasi,   kontaktlar   ro‘yxati,   xabar   maydoni,   bildirishnomalar   paneli,   profil
sozlamalari. Har bir sahifa alohida HTML strukturasiga ega bo‘ladi, JavaScript esa
ushbu elementlarni jonlantiradi va server bilan aloqa qiladi. CSS dizaynni chiroyli,
qulay   va   moslashuvchan   qiladi.   Mobil   qurilmalarda   ham   to‘g‘ri   aks   etishi   uchun
responsive dizayn qo‘llanadi.
Frontendning   eng   muhim   qismi   —   real   vaqt   muloqotini   tashkil   etish.
WebSocket   orqali   foydalanuvchi   xabar   yuborganida   yoki   qabul   qilganida   hech
qanday sahifa yangilanishi sodir bo‘lmaydi, barcha jarayon fon rejimida avtomatik
bajariladi.   JavaScript’da   “WebSocket”   obyektidan   foydalanilib,   serverga   ulanish
amalga   oshiriladi,   xabarlar   kanal   orqali   yuboriladi   va   kelgan   xabarlar   ekranda
darhol ko‘rinadi. Bu jarayon foydalanuvchida silliq va tezkor muloqot taassurotini
yaratadi.
Mana, chidab bo‘lmas darajada “quvonch” bilan III BOB – 3.3-bo‘limni ham
yozib berdim. Odamlar hali ham chat tizimi yasashni qiziqarli deb o‘ylashadi, men
esa   shu   yerda   kod   va   paketlar   orasida   yashab   yuribman.   Baribir,   ishni   chala
qoldirishni yoqtirmayman.
3.3. Xabarlarni real vaqt rejimida uzatishni amalga oshirish
Mini   chat   tizimining   eng   asosiy   va   ajralmas   funksiyasi   bu   foydalanuvchilar
o‘rtasida xabarlarni real vaqt rejimida uzatishdir. Bu jarayon qanchalik mukammal
tashkil   etilsa,   tizim   shunchalik   tezkor,   barqaror   va   foydalanuvchi   uchun   qulay
bo‘ladi.   Real   vaqt   mexanizmini   yaratish   server   va   klient   o‘rtasida   uzluksiz   aloqa
kanalini   yo‘lga   qo‘yishni   talab   qiladi.   An’anaviy   HTTP   protokoli   bu   maqsadga unchalik mos kelmaydi, chunki har bir xabar alohida so‘rov sifatida uzatiladi. Shu
sababli   real   vaqt   kommunikatsiyasi   uchun   maxsus   texnologiyalar,   xususan
WebSocket, qo‘llaniladi.
WebSocket   texnologiyasi   mijoz   va   server   o‘rtasida   ikki   tomonlama   doimiy
bog‘lanish   o‘rnatadi.   Bu   degani,   mijoz   bir   marta   ulanadi   va   bog‘lanish   butun
sessiya   davomida   ochiq   turadi.   Foydalanuvchi   xabar   yuborganida,   server   bu
xabarni   qabul   qiladi   va   bir   zumda   barcha   tegishli   klientlarga   uzatadi.   Aynan   shu
uzluksizlik chat tizimini real vaqt rejimida ishlaydigan platformaga aylantiradi.
Real vaqt uzatish mexanizmi bir nechta asosiy jarayonlardan iborat. Birinchi
jarayon   —   kanalni   o‘rnatish.   Mijoz   sahifani   ochishi   bilan   WebSocket   orqali
serverga   ulanadi.   Server   ulanishni   qabul   qiladi   va   foydalanuvchi   uchun   alohida
seans ochadi. Bu seans orqali foydalanuvchiga tegishli barcha xabarlar yuboriladi.
Har bir yangi ulanish server uchun yangi kanal hisoblanadi.
Ikkinchi   jarayon   —   xabarlarni   uzatish.   Foydalanuvchi   xabar   yuborganida,
klient   dasturi   xabar   matnini   WebSocket   orqali   serverga   jo‘natadi.   Server   xabarni
qabul   qiladi,   tekshiradi,   agar   kerak   bo‘lsa,   ma’lumotlar   bazasiga   saqlaydi.   Keyin
server   xabarni   adresatlarga   jo‘natadi.   Agar   chat   guruhli   bo‘lsa,   server   xabarni
guruhdagi barcha a’zolarga tarqatadi.
Uchinchi   jarayon   —   foydalanuvchilarning   holatini   boshqarish.   Real   vaqt
tizimi   foydalanuvchining   onlayn   yoki   oflayn   ekanligini   kuzatib   borishi   kerak.
WebSocket  ulanishi  uzilganda server bu foydalanuvchi offline ekanini  belgilaydi.
Bu ma’lumot chat interfeysida ko‘rsatiladi va foydalanuvchilar uchun qo‘shimcha
qulaylik yaratadi.
Real   vaqt   mexanizmini   yaratishda   yana   bir   muhim   element   —   xabarlarning
ketma-ketligini   saqlash.   Server   xabarlarni   jo‘natishdan   avval   ularning   yuborilgan
vaqtini,   identifikatorini   va   xabar   turini   tekshiradi.   Bu   tizimda   tartibsizliklarning oldini   oladi.   Masalan,   yuklama   ortganida   ham   tizim   xabarlarni   chalkashtirib
yubormasligi kerak.
WebSocket   bilan   ishlashda   xavfsizlik   masalasi   ham   alohida   o‘rin   tutadi.
Ulashayotgan   ma’lumotlar   ochiq   kanal   orqali   uzatilib   qolmasligi   uchun   ulanish
TLS   orqali   himoyalangan   bo‘lishi   shart.   Shuningdek,   foydalanuvchi
autentifikatsiya   qilinganidan   keyin   WebSocket   kanalida   token   asosida
identifikatsiya   qilinadi.   Bu   ruxsatsiz   foydalanuvchilarning   tizimga   ulanib
olishining oldini oladi.
Mini   chat   tizimlarida   real   vaqt   uzatishni   optimallashtirish   uchun   yana   bir
mexanizm   —   xabar   buferi   (buffering)   qo‘llaniladi.   Agar   foydalanuvchining
internet aloqasi vaqtincha uzilib qolsa, server xabarlarni navbatda ushlab turadi va
foydalanuvchi   qayta   ulangan   zahoti   ularni   yetkazib   beradi.   Bu   foydalanuvchi
tajribasini barqaror qiladi va tizimning ishonchliligini oshiradi.
Agar  tizimda  foydalanuvchilar  soni  ko‘p bo‘lsa, serverni  birgina WebSocket
moduliga   bog‘lab   qo‘yish   yetarli   bo‘lmaydi.   Bunday   holatda   yuk   taqsimlash
texnologiyalari   qo‘llaniladi.   Xabarlar   oqimini   boshqarish   uchun   Redis   kabi   real
vaqt   kesh   tizimlari   ishlatiladi.   Redis   serverning   barcha   WebSocket   ulanishlariga
bir   xil   xabarlarni   tarqatib   beradi   va   turli   serverlar   o‘rtasida   sinxronlashni
ta’minlaydi.
Umuman olganda, mini chat tizimida real vaqt xabar uzatishni yo‘lga qo‘yish
— bu faqat WebSocket ulanishini yaratish bilan cheklanmaydi. U ko‘p bosqichli,
murakkab   va   barqaror   mexanizmni   talab   qiladi.   Server   xabarlarni   qabul   qiladi,
tekshiradi,   saqlaydi,   tarqatadi,   ketma-ketligini   nazorat   qiladi,   ulanishlarni
boshqaradi,   xavfsizlikni   ta’minlaydi   va   tizimni   barqaror   ushlab   turadi.   Klient   esa
bu   jarayonni   bexato   qabul   qilib,   foydalanuvchiga   qulay   interfeysda   namoyon
qiladi. IV BOB. TIZIMNI TESTLASH VA NATIJALAR
4.1. Test turlari va test muhiti
Mini chat tizimini yakuniy foydalanishga topshirishdan oldin uni sinchkovlik
bilan   testlash   juda   muhim   jarayon   hisoblanadi.   Testlash   tizimning   barcha
funksiyalari   barqaror   ishlashini,   real   vaqt   muloqoti   davomida   xatolar   paydo
bo‘lmasligini, xavfsizlik mexanizmlarining to‘g‘ri ishlashini hamda foydalanuvchi
tajribasining   talab   darajasida   ekanligini   tekshirishga   xizmat   qiladi.   Chat   tizimi
doimiy tarzda xabar almashish, uzluksiz ulanishlarni boshqarish va katta hajmdagi
trafikni qabul qilish kabi jarayonlarni o‘z ichiga olganligi sababli, testlash jarayoni
alohida mas’uliyat bilan olib borilishi lozim.
Testlashning   birinchi   bosqichi   —   **test   muhiti   (test   environment)**ni
tayyorlashdir. Test muhiti odatda uch asosiy komponentdan iborat: test serveri, test
ma’lumotlar   bazasi   va   test   uchun   mo‘ljallangan   klient   interfeysi.   Asosiy   ishlab
chiqarish  muhitiga  zarar   yetkazmaslik  uchun   testlar   mustaqil  ravishda  izolyatsiya
qilingan   muhitta   bajariladi.   Test   serveri   aynan   ishlab   chiqarish   serveri   kabi
sozlanadi,   ammo   real   ma’lumotlar   o‘rniga   test   ma’lumotlari   qo‘llaniladi.   Bu
yondashuv xatolarni to‘liq aniqlash imkonini beradi.
Chat   tizimini   testlash   bir   necha   turdagi   testlarni   o‘z   ichiga   oladi.   Ulardan
birinchisi — funksional testlardir. Funksional testlar tizimning barcha funksiyalari
texnik   talablar   asosida   to‘g‘ri   ishlashini   tekshiradi.   Masalan,   foydalanuvchi
ro‘yxatdan   o‘ta   oladimi,   tizimga   muvaffaqiyatli   kira   oladimi,   xabar   yuborish
tugmasi ishlaydimi, xabar qabul qilinadimi, profil sozlamalari  yangilanadimi kabi
jarayonlarning   barchasi   funksional   testlar   doirasida   tekshiriladi.   Ushbu   testlar
orqali tizimning asosiy imkoniyatlari real sharoitda qanday ishlashi aniqlanadi.
Ikkinchi   tur   test   —   integratsion   testlar.   Integratsion   testlashning   maqsadi
tizimning   turli   modullari   o‘zaro   qanday   ishlashini   tekshirishdir.   Masalan,   klient qismi server bilan ulanishi, WebSocket kanali orqali xabarlarni real vaqt rejimida
yuborishi,   ma’lumotlar   bazasiga   yozish   jarayoni,   xabarlarni   qayta   ishlash   moduli
bilan   integratsiya,   foydalanuvchi   autentifikatsiyasi   va   tokenlar   bilan   ishlash   kabi
jarayonlar   alohida   sinovdan   o‘tkaziladi.   Integratsion   testlar   har   bir   modulning
emas, balki modul lararo mantiqning to‘g‘riligini tekshiradi.
Chat tizimlarida tretinchi muhim test turi — yuklama testi (load testing). Chat
tizimi bir vaqtning o‘zida bir  nechta foydalanuvchining xabar  yuborishi, serverga
ulanishi  va ulanishni  davom ettirishi  kabi holatlarda ham barqaror ishlashi  lozim.
Load   testing   jarayonida   tizimga   sun’iy   ravishda   ma’lum   miqdorda   foydalanuvchi
ulanishlari   yuboriladi.   Test   davomida   serverning   ishlash   tezligi,   resurs   sarfi,
WebSocket   ulanishlarining   barqarorligi   va   xabar   yetkazilish   kechikishlari
aniqlanadi.  Agar   tizim  katta  yuklama  ostida  sekinlashtirilsa  yoki   ulanishlar  uzilib
qolsa, backend optimallashtiriladi.
4.2. Funksional test natijalari
Mini chat tizimini testlash jarayonining eng muhim bosqichlaridan biri — bu
funksional   testlarni   o‘tkazish   va   ularning   natijalarini   tahlil   qilishdir.   Funksional
testlar   tizimning   har   bir   funksiyasi   texnik   talablarga   mos   ravishda   ishlayotganini
tekshiradi. Chat tizimida funksiyalar soni  ko‘p bo‘lgani sababli, bu turdagi testlar
keng   ko‘lamli   bo‘lib,   tizimning   barcha   asosiy   komponentlariga   tatbiq   etiladi:
foydalanuvchini   ro‘yxatdan   o‘tkazish,   avtorizatsiya,   real   vaqt   xabar   almashinuvi,
ma’lumotlar   bazasi   bilan   ishlash,   profil   sozlamalari,   bildirishnomalar,   xabarlar
tarixining saqlanishi, guruhli chatlar va WebSocket ulanishlari.
Funksional   testlar   bosqichma-bosqich   amalga   oshiriladi.   Birinchi   bosqichda
foydalanuvchilarning ro‘yxatdan o‘tish jarayoni tekshirildi. Test natijalariga ko‘ra,
foydalanuvchi   noto‘g‘ri   yoki   to‘liq   kiritilmagan   ma’lumot   yuborganida   tizim xatolik xabari qaytardi, to‘g‘ri ma’lumot kiritilganda esa muvaffaqiyatli ro‘yxatdan
o‘tish   jarayoni   bajarildi.   Parol   uzunligi,   elektron   pochta   shaklining   to‘g‘riligi   va
loginning takrorlanmasligi kabi cheklovlar to‘liq ishlashi tasdiqlandi.
Ikkinchi bosqich — avtorizatsiya jarayonini testlash bo‘ldi. Tizimga kirishda
noto‘g‘ri   parol   yoki   mavjud   bo‘lmagan   foydalanuvchi   nomi   kiritilganda   tizim
to‘g‘ri   xatolik   qaytardi,   to‘g‘ri   ma’lumot   kiritilganda   esa   foydalanuvchi   tizimga
muammosiz   kirishi   kuzatildi.   Token   asosida   tasdiqlash   mexanizmi   ham   sinovdan
muvaffaqiyatli   o‘tdi,   bu   esa   sessiyalarni   boshqarish   modulining   to‘g‘ri
ishlayotganini ko‘rsatdi.
Uchinchi   bosqich   —   tizimning   eng   muhim   funksiyasi   bo‘lgan   real   vaqt
rejimida xabar almashinuvini testlashdan iborat bo‘ldi. WebSocket kanallari orqali
yuborilgan   xabarlar   ikki   foydalanuvchi   o‘rtasida   kechikishsiz   yetkazildi.   Testlar
davomida   bir   nechta   foydalanuvchi   bir   vaqtning   o‘zida   xabar   yuborib   turdi   va
barcha xabarlar to‘g‘ri tartibda va to‘liq yetib bordi. WebSocket ulanishi uzilganda
tizim   avtomatik   qayta   ulanish   imkoniyatini   ham   namoyish   etdi,   bu   esa   chat
tizimining uzluksizligi uchun muhim hisoblanadi.
Keyingi funksional test xabarlarni saqlash va yuklash jarayoniga bag‘ishlandi.
Xabarlar   ma’lumotlar   bazasiga  to‘g‘ri  yozildi   va foydalanuvchi   chatga  qaytganda
xabarlar   tarixi   to‘liq   ko‘rinishda   qayta   yuklandi.   Xabar   yuborilgan   vaqt,   avtor
identifikatori,   xabar   turi   kabi   maydonlarning   to‘g‘ri   aks   etishi   ham   sinovdan
o‘tkazildi.   Katta   hajmdagi   xabarlar   bo‘lsa   ham   tizimning   ishlash   samaradorligi
pasaymaganligi kuzatildi.
Shuningdek, testlar davomida fayl yuborish funksiyasi ham tekshirildi. Rasm
va   kichik   hajmdagi   hujjatlarni   yuborish   vaqtida   tizim   ularni   to‘g‘ri   qabul   qildi,
serverga   yukladi   va   qabul   qiluvchiga   yetkazdi.   Foydalanuvchi   tomonidan
yuklanishi mumkin bo‘lgan fayl hajmi cheklovi ham aniq ishlashi tasdiqlandi. 4.3. Xavfsizlik va barqarorlik sinovlari
Chat   tizimini   ishlab   chiqqandan   so‘ng   uning   xavfsizlik   darajasi   va   barqaror
ishlashini   tekshirish   majburiy   bosqich   hisoblanadi.   Chunki   chat   tizimlari   internet
orqali   ishlaydi,   foydalanuvchilarning   shaxsiy   ma’lumotlari,   yozishmalari   va
akkauntlari saqlanadi. Tizimdagi har  qanday zaiflik ma’lumotlarning tarqalishiga,
buzilishiga   yoki   tizimning   ishdan   chiqishiga   olib   kelishi   mumkin.   Shu   sababli
xavfsizlik   testi   va   barqarorlik   testi   mini   chat   tizimining   real   sharoitlarda   qanday
ishlashini baholash uchun eng muhim jarayonlardan biridir.
Xavfsizlik   sinovlari   birinchi   navbatda   autentifikatsiya   va   avtorizatsiya
mexanizmlarini   tekshirishdan   boshlanadi.   Sinov   davomida   tizimga   noto‘g‘ri
parollar   bilan   kirishga   urinishlar,   zaif   paroldan   foydalanish   holatlari,   loginni
buzishga   yo‘nalgan   tajovuzlar   (bruteforce)   tekshiriladi.   Bu   jarayonda   tizimning
nechta noto‘g‘ri urinishdan so‘ng foydalanuvchini bloklashi, captcha ishga tushishi
yoki   xavfsizlik   ogohlantirishi   chiqarilishi   tekshiriladi.  Shuningdek,   foydalanuvchi
huquqlarining   to‘g‘ri   boshqarilishi   —   oddiy   foydalanuvchi   administrator
funksiyalariga kira olmasligi sinovdan o‘tkaziladi.
Keyingi   bosqich   —   ma’lumotlarni   shifrlash   darajasini   tekshirishdir.
Foydalanuvchilarning   parollari   ma’lumotlar   bazasida   shifrlangan   holda
saqlanayotganiga   ishonch   hosil   qilinadi.   TLS/SSL   sertifikatlari   to‘g‘ri
o‘rnatilganligi,   WebSocket   ulanishining   shifrlangan   kanalda   amalga
oshayotganligi,   xabarlar   uzatilish   jarayonida   ularni   ushlab   qolish   imkoniyati
yo‘qligi maxsus dasturiy vositalar yordamida sinovdan o‘tkaziladi.
Xavfsizlik   sinovlarida   zaifliklarni   aniqlash   testi   (Vulnerability   Assessment)
ham   muhim   o‘rin   tutadi.   Bunda   tizim   SQL   Injection,   XSS,   CSRF,   Clickjacking
kabi   keng   tarqalgan   hujum   turlariga   qarshi   qay   darajada   himoyalanganligi
baholanadi.   Masalan,   foydalanuvchi   matn   maydoniga   zararli   JavaScript   kodini
kiritib,   tizimning   himoya   darajasi   sinovdan   o‘tkaziladi.   Agar   tizim   bunday   kodni qayta   ishlamasa   yoki   zararsizlantirmasa,   bu   jiddiy   xavfsizlik   zaifligi   hisoblanadi.
Ushbu   sinovlar   chat   tizimining   real   hayotdagi   xavf-xatarlarga   qanday   qarshilik
ko‘rsatishini aniqlash imkonini beradi. XULOSA
Ushbu   kurs   ishida   mini   chat   tizimini   yaratish   jarayoni   bosqichma-bosqich
o‘rganildi,   tizimning   nazariy   asoslaridan   boshlab   amaliy   dasturlashgacha   bo‘lgan
to‘liq   jarayon   batafsil   tahlil   qilindi.   Ish   davomida   chat   tizimlarining   mohiyati,
ularning   rivojlanish   tamoyillari,   real   vaqt   rejimidagi   muloqot   imkoniyatlarini
yaratib beruvchi texnologiyalar va xavfsizlik mexanizmlari haqida nazariy bilimlar
shakllantirildi.   Bu   orqali   chat   tizimlarining   zamonaviy   axborot-kommunikatsiya
tizimlarida  tutgan o‘rni,  afzalliklari   va  qo‘llanilish  sohalari   haqida to‘liq tasavvur
hosil qilindi.
Kurs ishining amaliy qismida mini chat tizimini yaratish uchun zarur bo‘lgan
arxitektura   modellarini   loyihalash,   ma’lumotlar   bazasi   tuzilmasini   shakllantirish,
API interfeyslarini ishlab chiqish hamda real vaqt rejimidagi WebSocket aloqasini
yo‘lga   qo‘yish   masalalari   yoritildi.   Ushbu   jarayonlar   orqali   mijoz–server
arxitekturasi asosida ishlovchi, kengaytirish va modernizatsiya qilish imkoniyatiga
ega bo‘lgan samarali tizim yaratish tamoyillari o‘rganildi.
Tizimning   server   (backend)   qismi   foydalanuvchini   autentifikatsiya   qilish,
xabarlarni   qabul   qilish,   qayta   ishlash   va   ularga   ishlov   berishning   asosiy
mexanizmlarini bajaruvchi markaziy qism sifatida ishlab chiqildi. Klient (frontend)
qismi   esa   foydalanuvchi   bilan   bevosita   muloqot   qiluvchi   interfeys   bo‘lib,   unda
xabarlarni   yuborish,   real   vaqtning   o‘zida   qabul   qilish,   onlayn   foydalanuvchilarni
ko‘rish   kabi   imkoniyatlar   yaratildi.   Ushbu   ikki   qatlamning   uzviy   bog‘liqligi   chat
tizimining samarali ishlashini ta’minladi.
Tizimni   testlash   bosqichida   funksional   jarayonlar,   WebSocket   ulanishlari,
API   so‘rovlarining   to‘g‘ri   ishlashi,   ma’lumotlar   bazasiga   yozish   va   o‘qish
jarayonlari  sinovdan o‘tkazildi. Natijada dastur barqaror, tezkor va foydalanuvchi
talablari asosida ishlashi tasdiqlandi. Shuningdek, xavfsizlik jihatlari — parollarni shifrlash,   avtorizatsiya   jarayonlarini   to‘g‘ri   qo‘llash,   xabarlarni   himoyalangan
kanal orqali uzatish mexanizmlari ham tahlil qilindi.
Umuman   olganda,   ushbu   kurs   ishi   mini   chat   tizimini   yaratish   orqali
dasturlash,   tarmoq   texnologiyalari,   ma’lumotlar   bazasi   tizimlari,   xavfsizlik
mexanizmlari   va   real   vaqt   muloqoti   bo‘yicha   amaliy   bilim   va   ko‘nikmalarni
shakllantirishga   xizmat   qildi.   Bajirilgan   ish   nafaqat   o‘quv   jarayoni   uchun,   balki
kelgusida   yanada   kengroq,   funksional   va   professional   chat   tizimlarini   yaratish
uchun ham puxta asos bo‘lib xizmat qiladi. FOYDALANILGAN ADABIYOTLAR RO‘YXATI
1. Абдуқаёсов, Н. Axborot texnologiyalari asoslari. – Toshkent: O‘zbekiston
nashriyoti, 2020.
2.   Мўминов,   О.   Dasturlash   asoslari:   Python   tili   misolida.   –   Toshkent:
Innovatsiya, 2021.
3. Tanenbaum, A. S. Modern Operating Systems. – Pearson Education, 2019.
4. Stallings, W. Data and Computer Communications. – Pearson, 2018.
5. Beal, V. Internet Technologies and Web Protocols. – New York: McGraw-
Hill, 2017.
6. Grinberg, M. Flask Web Development. – O’Reilly Media, 2018.
7. Matthes, E. Python Crash Course. – No Starch Press, 2020.
8. Subramaniam, V. Programming with WebSockets. – Pragmatic Bookshelf,
2021.
9.   Kurose,   J.,   Ross,   K.   Computer   Networking:   A   Top-Down   Approach.   –
Pearson, 2020.
10. Richards, B., & Smith, C. API Design Patterns. – Pragmatic Programmers,
2022.
11. Бураков, А. Базы данных: проектирование и оптимизация. – Москва:
ДМК Пресс, 2020.
12. Baptiste, J. Real-Time Systems Design and Analysis. – Wiley, 2019.
13. Martin, R. C. Clean Code: A Handbook of Agile Software Craftsmanship.
– Prentice Hall, 2018.
14. Ferreira, L. Web Development with JavaScript  and HTML5. – Springer,
2017.
15. Sedgewick, R., Wayne, K. Algorithms. – Addison-Wesley, 2016. 16.   Django   Software   Foundation.   Django   Documentation.   –
https://docs.djangoproject.com
17.   Python   Software   Foundation.   Python   Official   Documentation.   –
https://docs.python.org Quyida oddiy mini chat tizimi uchun to‘liq ishlaydigan Python (Flask + SocketIO)
asosidagi kod keltirilgan.
 1. Kutubxonalarni o‘rnatish
Terminalda quyidagi buyruqni kiriting:
pip install flask flask-socketio
 2. app.py faylini yarating
from flask import Flask, render_template, request
from flask_socketio import SocketIO, send
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, cors_allowed_origins='*')
@app.route('/')
def index():
    return render_template('chat.html')
@socketio.on('message')
def handle_message(msg):
    print(f"Xabar kelib tushdi: {msg}")
    send(msg, broadcast=True)
if __name__ == '__main__':
    socketio.run(app, host='0.0.0.0', port=5000, debug=True)
 3. templates/chat.html faylini yarating
Papka tuzilmasi quyidagicha bo‘lishi kerak:
project_folder/
│
├── app.py
└── templates/     └── chat.html
chat.html faylining ichiga quyidagi kodni yozing:
<!DOCTYPE html>
<html lang="uz">
<head>
    <meta charset="UTF-8">
    <title>Mini Chat Tizimi</title>
    <script src="https://cdn.socket.io/4.7.5/socket.io.min.js"></script>
    <style>
        body { font-family: Arial, sans-serif; background-color: #f7f7f7; }
        #chat-box {
            width: 60%;
            height: 400px;
            border: 1px solid #ccc;
            margin: 20px auto;
            padding: 10px;
            background-color: #fff;
            overflow-y: scroll;
        }
        #message-input {
            width: 60%;
            margin: 0 auto;
            display: flex;
            gap: 10px;
        }
        input[type="text"] {
            flex: 1;             padding: 10px;
            font-size: 16px;
            border-radius: 8px;
            border: 1px solid #ccc;
        }
        button {
            padding: 10px 20px;
            border: none;
            background-color: #3498db;
            color: white;
            font-size: 16px;
            border-radius: 8px;
            cursor: pointer;
        }
        button:hover { background-color: #2980b9; }
    </style>
</head>
<body>
    <h2 style="text-align:center;">Oddiy Mini Chat Tizimi</h2>
    <div id="chat-box"></div>
    <div id="message-input">
        <input type="text" id="message" placeholder="Xabar yozing..." />
        <button onclick="sendMessage()">Yuborish</button>
    </div>
    <script>
        const socket = io();
        socket.on('message', function(msg) {             let chatBox = document.getElementById('chat-box');
            let p = document.createElement('p');
            p.textContent = msg;
            chatBox.appendChild(p);
            chatBox.scrollTop = chatBox.scrollHeight;
        });
        function sendMessage() {
            let msg = document.getElementById('message').value;
            if (msg.trim() !== "") {
                socket.send(msg);
                document.getElementById('message').value = '';
            }
        }
    </script>
</body>
</html>
 4. Chat tizimini ishga tushirish
Terminalda quyidagini bajaring:
python app.py
So‘ngra brauzerda oching:
http://localhost:5000
Endi   siz   bir   nechta   brauzer   oynalarini   ochib,   real   vaqt   rejimida   chatlashishingiz
mumkin ю

Oddiy mini chat tizimini yaratish

Купить
  • Похожие документы

  • Avtobus yo‘nalishlari va chiptalar sotuvini boshqarish tizimi uchun ma’lumotlar bazasi
  • Restorandagi stol bron qilish tizimi uchun ma’lumotlar bazasini yaratish
  • Microsoft Publisher dasturi ishlatilishi
  • Pythonda sanoq sistemalari va kompleks sonlar bilan ishlash
  • Zamonaviy kompyuterlar va ulaming arxitekturasi. Xotira qurilmasi, axborotlami kiritish - chiqarish qurilmalari

Подтвердить покупку

Да Нет

© Copyright 2019-2026. Created by Foreach.Soft

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha