برنامه آزمایشی الگوریتم چت Comet

اینو درست کردم فقط میخواستم ببینم پیاده سازی Comet چطوریه: دانلود
ضمنا میخواستم حالت آموزش/نمایش الگوریتم هم داشته باشه، ولی ظاهرا بیش از حد پیچیده و حجیم شده و بدون توضیحات خط به خط ممکنه فهمیدن اون برای مبتدی ها خیلی دشوار باشه.

طرز تست برنامه ساده هست. فقط باید PHP امکان نوشتن و خواندن فایل در دایرکتوری برنامه رو داشته باشه.
بعد کافیه فایل client1.php و client2.php رو هرکدام در یک پنجرهء/تب مرورگر اجرا کنید. اونطور که تست کردم فرقی نمیکنه در یک مرورگر باشه یا دو نوع مرورگر. البته بنده فقط در IE8 و FF3.6.8 تستش کردم.

ضمنا این فقط یه برنامهء آزمایشی ساده هست برای تست و نشون دادن الگوریتم Comet به یکی از روشهای ممکن از میان روشهای مختلف. برنامه لزوما کامل و بدون باگ نیست و صرفا بین دو فایل ذکر شده امکان چت رو فراهم میکنه و پیامها و گزارش وضعیت هایی رو هم نشون میده که برای آشنایی با طرز کار و ضمنا برای کمک در توسعه و باگیابی هستن.

Comet اصولش ساده هست، اما در عمل مسائل ظریف و محدودیت و مشکل زیاد داره که باید هندل کرد.
البته Comet هم به چند روش پیاده سازی میشه. بنده از متد Long polling استفاده کردم.
بعد اگر بخوایم یه سیستم چت کامل و منطعف درست کنیم خیلی بیشتر از اینهم کار میخواد. این فقط یه برنامهء آزمایشیه برای نشان دادن اصول و الگوریتم کلی Comet که تنها بخشی از یک سیستم چت کامله. البته سیستم چت رو میشه بدون Comet هم درست کرد که بنظرم ساده ترش میکنه.

از طرف دیگه میگن معما چون حل شود آسان شود!
با کلی مشکل و باگ عجیب در این برنامه مواجه شدم و با کلی فکر و تست تونستم علتشون رو بفهمم و رفع کنم. خصوصا در اینطور برنامه ها تست کردن هم کار راحتی نیست.
تازه بازم حتما چنتایی باگ ظریف در این برنامه هست. ولی فکر میکنم بحدی که برای یه برنامهء آزمایشی که کلیت و کارایی الگوریتم رو نشون بده و قابل تست بدون مشکل باشه لازمه روش کار کردم.

راستی اگر خواستید این برنامه رو آنلاین تست کنید، باید بجز دایرکتوری برنامه، پرمیشن خواندن و نوشتن رو روی فایلهای 1، 2، counter1 و counter2 هم اعمال کنید.
بنده الان میخواستم برنامه رو آنلاین تست کنم متوجه این موضوع شدم.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>