حدود ۵ سال پیش که تصمیم گرفتم پروتکل MTProto رو با PHP ایجاد کنم دانش خیلی خیلی کمی نسبت به الان داشتم
توی اون زمان فکر میکردم که ساخت یک کلاینت MTProto صرفا به ایجاد یک کانکشن و رمزنگاریهاش هست
و خب این خودش برام یک کابوس بود چون واقعا پیچیده بود، مخصوصا برای من ۵ سال پیش
سال اول حتی جرئت شروع توسعهش رو نداشتم
دو سال بعد حدود ۲۰ تلاش ناموفق داشتم(یک فولدر دارم که توش فولدرهایی با اسم MTProto-v1 تا MTProto-v20 هست و هر کدوم یک ورژن کاملا متفاوت و شکست خورده س😁)
سال چهارم بالاخره موفق شدم که رمزنگاریهاش رو درست انجام بدم و کانکشنم رو برقرار کنم، خوشحال بودم چون همه چیز درست کار میکرد
سال پنجم که الان هست متوجه شدم که اینها سادهترین بخش کار بودن، و هنوز کلی چیز لازم داره
به عنوان مثال، برای اینکه یک پیام bold ارسال کنیم، باید یک انتیتیپارسر بنویسیم
چون در حالت عادی خود پروتکل یا کلاینت قرار نیست اینهارو بفهمه
یک انتیتیپارسر که هم مارکداون بفهمه، هم html، اونم برای تک تک انتیتیهای تلگرام
متوجه شدم، فایلهایی که تلگرام میفرسته فایل ساده و معمولی نیستن، و باید فایل دیکودر و انکودر بنویسم، فایل ساده نمیشه ارسال کرد، پس باید فایل آپلودر بنویسم
متوجه شدم ریسک بن شدن زیاد هست، باید دیوایس و کلاینت واقعی شبیهسازی کنم، ریتلیمیتر ایجاد کنم
باید بین دیتاسنترها همگامسازی ایجاد میکردم
خیلی از پارامترهای api تلگرام پیچیده هستن، باید سادهسازی میکردم خیلی از پارامترهارو
پیاچپی عزیز async نیست و باید با swoole هندلش میکردم
باید با لاراگرام سازگارش میکردم
و احتمالا کلی چیز میز دیگه که در آینده میفهمم و به پشیمونیم اضافه میشه
ولی حتی کابوس اصلی این ها هم نیست
نگهداری و بروز نگه داشتن اون هست با وجود آپدیتهای متعدد تلگرام
خلاصه که کم کم دارم پشیمون میشم، ولی خیلی دیره واسش😁
Post #560
330
- 🕊 7
- ❤ 3
- 👍 3
- 🤣 1