پیش نیاز های ساخت یک نرم افزار چت در ios
درود خدمت شما . یک سوالی دارم که چند وقتی هست داره ذهن منو مشغول می کنه
شما فکر کنید می خواهید یک اپ مثل تلگرام بنویسید یا اصلا یک سیستم پشتیبانی روی خط درست کنید
چطور می شه
۱. وقتی داخل چت هستی ریل تایم چت ها بیاد و اون ور هم دریافت بشه
۲. چطور می شه وقتی در چت نیستی و تو برنامه نیستی برات ناتیفیکیشن بیاد
۳. چطور می شه بشماره چندتا پیغام اومده وقتی تو اپ هستی ولی تو چت نیستی
از نظر برنامه نویسی طرف سرور مشکلی نیست می تونم ریل تایم بنویسم ولی اپ رو درک نمی کنم . یعنی اپ در لحظه درخواست می فرسته و چک می کنه ؟ اینجوری خیلی درخواست ها بالا می ره. و همینطور ناتیفیکیشن ها چطور یعنی هرکی پیغام می ده یک اطلاع رسانی ارسال می شه ؟
لطفا راهنمایی کنید هم در مورد پیش نیاز ها و هم در مورد موارد بالا .
با تشکر
سلام ،
برای تولید اپلیکیشن هایی مانند تلگرام باید برنامه نویسی ساکت در سمت سرور و کلاینت انجام بشه .
ارتباط بین اپلیکیشن و سرور هم از طریق یک ساکت برقرار میشه ، این نوع ارتباط با ارتباط عادی که برای هر درخواست یک کانکشن زده میشود متفاوت است و پیچیدگی های خاص خود را دارد .
میتونید سورس تلگرام برای سیستم عامل iOS را از این لینک دانلود کنید .
- وقتی یک ارتباط ساکت برقرار میشود کلاینت و سرور در هر لحظه در حال تبادل اطلاعات هستند .
- با ایجاد سرویس ناتیفیکیشن امکان نمایش پیام ها در حالتی که برنامه بسته است نیز وجود دارد.
- این اطالاعات توسط سرور به کلاینت ارسال میشود .
زمانی که ارتباط Socket برقرار میشود ، کلاینت در هر لحظه میتواند اطلاعاتی را به سرور بفرست و یا درخواستی داشته باشد .
حجم درخواست های ارسالی نیز نسبت به محتوای سنجیده میشود .
موفق باشید
اضافه بر صحبت های آقای کاشی زاده من یه شکل کلی از ارتباط با Socket رو ترسیم میکنم تا متوجه شین :
این ارتباط مثل یه دریچه میمونه که شما وقتی بازش میکنی, کاملا باز میمونه و همه اطلاعات به صورت Real-Time انتقال داده میشن (هم از کلاینت به سرور هم برعکس.) و بر خلاف ارتباط به صورت Webservice که شما حتما باید یه Request بزنی به سرور تا جواب برگردونده بشه, این جا جوابی در کار نیست. چه سرور چه کلاینت هروقتی که بخوان میتونن داده بفرستن به سمت مقابل و هر دو سمت هم یه Listener دارن که منتظر رسیدن پیام جدید هست. اطلاعات هم هرجوری میتونه باشه, میتونه یه String عادی باشه یا به فرم Json باشه یا ...
سوکت ها معمولا به 2 حالت TCP/IP و UDP هستن که UDP بیشتر برای ساخت نرم افزار هایی مورد استفاده قرار میگیره که توشون انتقال صدا/تصویر باشه.
پیشنهاد میکنم توی گوگل یه سرچ بزنین راجب آموزش Socket در زبان C و چند تا لینک رو (انگلیسی) بخونین کامل. تا جایی که میتونین بخونین تا متوجه شین.
این هم که میگم C واس اینه که آموزش های کامل و بنیادی برای Socket توی زبان C هست و اینکه شما اگه پایه پایه کار رو بفهمین بعدا که خواستین توی Swift یا هر زبان دیگه پیادش کنین کارتون خیلی راحت تر میشه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .