බොහෝ Django යෙදුම් ඉල්ලුම‑ප්රතිචාර ආකාරයෙන් ක්රියා කරයි – පරිශීලකයා ක්ලික් කරයි, බ්රවුසරය සර්වරයට ඉල්ලුමක් යවයි, Django ඒක සැකසී, පිළිතුරක් එවයි. මේ ක්රමය වෙබ් අඩවි 90% කට ප්රමාණවත් නමුත්, රියල්‑ටයිම් දත්ත යාවත්කාලීන, නිවේදන, චැට්, ඇනවුම් නිරීක්ෂණ වැනි අංග සඳහා සර්වරය පාරිභෝගිකයා ඉල්ලුමක් නොකළ තත්ත්වයේද දත්ත එවිය යුතුය.
මෙම අවශ්යතාව සපුරාලීමට Django Channels යෙදේ. Channels, Django‑වෙතින් HTTP පමණක් නොව WebSocket, HTTP/2 Server‑Sent Events, පසුබැසීම් කාර්යයන් වැනි වෙනත් ප්රොටෝකෝලයන් සලසයි. ඒ සඳහා Redis‑වල පදනම්වූ Channel Layer නාමයක් භාවිතා කරයි, එය පණිවිඩ හුවමාරු මාර්ගයක් ලෙස ක්රියා කරයි.
මූලික සැකසුම පහත පියවරවලින් සකස් වේ:
- Channel Layer – Redis සර්වරයක් සකසයි.
- ASGI Server – Daphne හෝ Uvicorn (Gunicorn නොවේ) භාවිතා කරයි.
- Consumers – WebSocket සම්බන්ධතා සඳහා view‑වලට සමාන කොඩ්.
- Application Logic – ඕනෑම තැනකින් පණිවිඩ යැවීමට හැකියාව.
settings.py තුළ channels ඇප් එක එකතු කර, ASGI_APPLICATION හා CHANNEL_LAYERS සකස් කරයි. asgi.py ෆයිලයේ ProtocolTypeRouter භාවිතයෙන් HTTP සහ WebSocket යන දෙකම රවුට් කරයි. routing.py ෆයිලේ URL patterns නිර්දේශ කර, consumer ක්ලාස් එකක් (උදා: OrderStatusConsumer) තුළ connect, disconnect, receive වැනි async ක්රියාමාර්ග නිර්වචනය කරයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
දෙමළ, ඉංග්රිසි භාෂා පාඨමාලා වලදී පමණක් නොව, ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්ටත් මේ තාක්ෂණය ප්රයෝජනවත් වේ. රියල්‑ටයිම් දත්ත පාරිභෝගික අත්දැකීම වැඩි කරයි, එමඟින් e‑commerce, ලොජිස්ටික්, රියල්‑ටයිම් විශ්ලේෂණ වැනි ව්යාපාරික ක්ෂේත්රවල තරඟකාරීත්වය ඉහල යයි. පාඨමාලා, වැඩමුළු, සමාජ ව්යාපෘති වලදී Django Channels භාවිතා කර, සිසුන්ට async programming, WebSocket, Redis integration වැනි නව තාක්ෂණික කුසලතා ලබා දිය හැක.
අදාල ව්යාපාරිකයන්ට, රියල්‑ටයිම් dashboard හෝ chat system එකක් ඉතා ඉක්මනින් නිර්මාණය කළ හැකි බැවින්, පාරිභෝගික තෘප්තිය හා පාරිභෝගික නිරීක්ෂණය වඩාත් සාර්ථක වේ.
සාමාන්යයෙන්, Django Channels ස්ථාපනය කර, ASGI server එකක් තෝරා, consumer ලියනවාමෙන් ඔබේ Django යෙදුමට රියල්‑ටයිම් හැකියාවක් එක් කළ හැක. මෙය Python ecosystem එකේ async ක්රමලේඛන පිළිබඳ දැනුම වර්ධනය කිරීමේ හොඳ අවස්ථාවකි.
ඔබේ ව්යාපාරය හෝ පුද්ගලික ව්යාපෘතියට රියල්‑ටයිම් අංගයක් අවශ්ය නම්, Django Channels පදනම් කරගෙන පියවරෙන් පියවර ඉදිරියට යන්න. තවත් විස්තර සඳහා අපගේ වෙබ් අඩවියට පිවිසෙන්න.