← All writing

tutorials

Laravel Reverb

· MSD

Laptop displaying software code
Illustrative photo by AltumCode on Unsplash.

Realtime Notification

အရင်ကတော့ ပရောဂျက်တွေမှာ Realtime Notification တွေ လိုလာရင် Node.js ဘက်က express, socket io စတာတွေ သုံးပြီး သီးသန့်ထပ်ရေးရတယ်။ အခုတော့ Reverb ဆိုတဲ့ Laravel Ecosystem ထဲက Socket Server သုံးပြီး ပြောင်းရေးကြည့်တာ အဆင်ပြေတယ်ပြောရမယ်။

နည်းပညာအသစ်တစ်ခုကို စပြီးလေ့လာတဲ့အခါ လောကြီးပြီး အလုပ်ဖြစ်တာကိုပဲ မြင်ချင်မိတယ်။ အခြေခံသဘောတရားတွေကို ကျော်ခွပြီး ဒီလိုရေးရင် ဒီလိုပေါ်မယ် ဆိုတာလောက် အသေမှတ်ထားပြီး ကူးချမိကြတာများတယ်။ Laravel Reverb ကို ဖတ်တဲ့အခါ ဒီသဘောတရားကို သွားတွေ့မိတယ်။ စိတ်ထဲမှာ Reverb ဆိုတဲ့ နည်းပညာဟာ socket io ကို အားကိုးနေရတဲ့ ကျွန်တော်တို့အဖို့ မှော်ဆန်တဲ့ ဖြေရှင်းနည်းတစ်ခုလိုပဲ မှတ်ယူမိတယ်။ ပေးတဲ့ command line လေး နှစ်ကြောင်း သုံးကြောင်းရေး၊ ကုတ်ကလေး တစ်ပိုဒ်နှစ်ပိုဒ် ကူးချပြီး စမ်းကြည့်လိုက်တော့ အဆင်ပြေတယ်။ တကယ်မှော်ဆန်ပါလားပေါ့ သဘောတွေကျပြီး ဆာဗာပေါ် ပါ တစ်ခါတည်းတင်လိုက်တယ်။

အဲ့ဒီမှာ စပြီး ဒုက္ခရောက်တယ်။ ကိုယ့်စက်ထဲမှာ လုပ်တယ်၊ ဆာဗာပေါ်တင်တော့ အလုပ်မလုပ်ဘူးဆိုတဲ့ အကွက်မျိုး။ ဒါမျိုးကတော့ ရိုးနေပါပြီဆိုပြီး ဖြစ်နေကြ environment variable တွေ လိုက်စစ်၊ ပြန်တင်ကြည့်တယ်၊ အလုပ်မလုပ်ဘူး။ ဒါနဲ့ ရေးထားတဲ့ ကုတ်ကြောင်းချင်းစီကို trace လိုက်ပြီး စစ်ကြည့်တယ်၊ ရေးထားတဲ့ ကုတ်တွေမှာတော့ ဘာပြဿနာမှ မတွေ့ဘူး။ client, server နှစ်ဘက်လလုံးကလည်း up and running ပဲ။ ဘာ Error မှ မတက်ပဲ အလုပ်ပဲ မလုပ်တာမျိုးက တော်တောိ အန္တရာယ်များတဲ့ အနေအထား။ telescope မှာ အစအဆံုး လိုက်ကြည့်ရင်းမှ တွေ့တယ် exception တွေ။

reverb သည် ဆာဗာတစ်ခု laravel သည် ဆာဗာတစ်ခု သူတို့အချင်းချင်း http နဲ့ communicate လုပ်တယ် အဲ့ဒီ communicate လုပ်တဲ့နေရာမှာ 404 ပြနေတာ

apache vhost configuration မှာ reverb အတွက် ws proxy, http proxy rules တွေ ရေးပေးလိုက်တော့မှ သူလည်းဝမ်းသာ ကိုယ်လည်းရွှင်ပြုံး ဖြစ်ရတော့တယ်။

ကိုယ့်စက်ထဲမှာ run တုန်းက client, laravel နှစ်ခုလံုးက reverb server ရဲ့ localhost:8000 ကိုပဲ ချိတ်ပြီး run တာဆိုတော့ အလုပ်ရှုပ် သက်သာတယ် production မှာကြတော့ client က reverb server ရဲ့ public domain ကို ssl / wss နဲ့ချိတ်ပြီး laravel က reverb ကို ip , http နဲ့ချိတ်တော့ အတော်လေး လမ်းပျောက်သွားတယ်။