منصوبے کے بارے میں

ہمنگبرڈ Node.js کے لیے لکھا گیا ایک خود ہوسٹ شدہ سائٹ ٹریکنگ اور اینالیٹکس اسٹوریج سرور ہے۔ یہ وزیٹرز کو 1x1 ٹریکنگ پکسل فراہم کرتا ہے جس میں براؤزر کا GET ریکویسٹ چھوٹے JavaScript اسنیپٹ سے پیدا ہونے والے ٹریکنگ ڈیٹا کو شامل کرتا ہے۔ ضرورت اور انسٹالیشن اس کے لیے node.js v0.8.0 یا اس سے زیادہ درکار ہے۔ README کی سیٹ اپ ہدایات میں ریپوزیٹری کلون کرنا، npm install چلانے سے انحصارات حاصل کرنا، اور اگر نقشہ فیچر چاہیے تو MaxMind کا GeoLiteCity.dat GeoIP ڈیٹا بیس روٹ ڈائریکٹری میں ڈاؤن لوڈ کرنا شامل ہے۔ سرور `node server.js` سے شروع ہوتا ہے۔ ڈیش بورڈ اور ڈپلائمنٹ ڈیش بورڈ عام طور پر پورٹ 8080 پر چلتا ہے اور config/config.js میں پروڈکشن استعمال کے لیے غیر فعال کیا جا سکتا ہے۔ ڈیش بورڈ عام HTML ہے جو public/ سے فراہم ہوتا ہے، لہذا کوئی بھی ویب سرور اسے ہوسٹ کر سکتا ہے۔ README خبردار کرتا ہے کہ ڈیش بورڈ کو محفوظ کیا جائے اگر یہ عوامی طور پر نظر نہ آئے، عام طور پر nginx یا apache کے پیچھے basic auth کے ساتھ۔ ڈیش بورڈ کا 'listen' فنکشن انٹرفیس منسلک کرنے کے لیے دوسرا آرگومنٹ قبول کرتا ہے — مثلاً "127.0.0.1" صرف لوکل ہوسٹ کے لیے، یا "0.0.0.0" تمام انٹرفیسز کے لیے — اور ٹریکنگ پکسل کو الگ پورٹ پر چلانا چاہیے تاکہ یہ باہر کی دنیا سے قابل رسید رہے۔ ٹریکنگ کی ترتیب client/hummingbird.js میں ایک چھوٹا اسکرپٹ ہے جو Hummingbird ایونٹ کو متحرک کرتا ہے۔ اسے پیج باڈی میں پیسٹ کیا جا سکتا ہے یا اسکرپٹ ٹیگ کے ساتھ اپ لوڈ اور حوالہ دیا جا سکتا ہے۔ بغیر آرگومنٹ کے HummingbirdTracker.track() کال کرنے سے معیاری پیرامیٹرز جیسے پیج URL بھیجے جاتے ہیں؛ tùy man داده جیسے HummingbirdTracker.track({logged_in: true}) منسلک کیا جا سکتا ہے، اور یہ داده backend پر ایونٹس کو فلٹر کرنے کے لیے Hummingbird کے میٹرکس کے اندر استعمال ہو سکتی ہے۔ عمارت ہمنگبرڈ دو حصوں میں منظم ہے: ایک Node.js ٹریکنگ سرور جو ٹریکنگ پکسل کے ذریعے صارف کی سرگرمی ریکارڈ کرتا ہے، اور وہ JavaScript وڈجٹس جو اس سرگرمی کو دکھاتے ہیں۔ سرور جہاں ممکن ہو WebSockets کے ذریعے تمام سرگرمی کو کلینٹس کو براڈکاسٹ کرتا ہے، Flash sockets یا long polling پر واپس آتا ہے۔ Hummingbird.WebSocket آبجیکٹ سرور سے WebSocket ایونٹس JSON آبجیکٹس کے طور پر وصول کرتا ہے، اور individual وڈجٹس میٹرک میں سبسکرائب کرتے ہیں اور handler فنکشن رجسٹر کرتے ہیں جو ہر بار کال ہوتے ہیں جب وہ میٹرک موجود ہو۔ حسب ضرورت میٹرکس اور وڈجٹس میٹرکس lib/metrics میں رہتے ہیں اور auto-load ہوتے ہیں۔ ہر میٹرک میں ایک handler فنکشن ہوتا ہے جو ہر نئے صارف ایونٹ پر invoke ہوتا ہے، اور `data` آبجیکٹ پروپرٹی میں dữ liệu ذخیرہ کرتا ہے جو میٹرک کے ذریعے مقرر وقفوں پر کلینٹس کو emit ہوتا ہے۔ total_views.js ایک بنیادی مثال کے طور پر دیا گیا ہے، اور cart_adds.js query parameters پر فلٹرنگ کی مثال کے طور پر۔ stock widgets (Counter, Logger, Graph) سرور کے dữ liệu میں کیسے منسلک ہونا ہے اس کی نمائش کرتے ہیں؛ ایک حداقل وڈجٹ مثال public/js/widgets/logger.js ہے۔ وڈجٹ ایک ایسا آبجیکٹ ہے جس کا prototype Hummingbird.Base سے extend ہوتا ہے اور onMessage implement کرتا ہے۔ README میں ایک tip بھی نوٹ کیا گیا ہے: production سرور سے streaming dữ liệu کے ساتھ UI کو locally چلانے کے لیے http://localhost:8080/?ws_server=your-host.com&ws_port=12345 جیسا URL استعمال کریں۔ منصوبہ نوٹس ہمنگبرڈ MIT License کے تحت لائسنس یافتہ ہے۔ README میں Michael Nutt، Benny Wong، اور دیگر کئی تعاون کنندگان کا ذکر ہے۔