اگر یک فایل بزرگ در js داشته باشید و بخواهید بخوانید browser با تکنیک های عادی crash می کند و باید آن را تکه تکه بخوانید کد بالا یک نمونه برای این منظور است
فایل بزرگ مثلا 500 مگ و یا یک گیگ
https://javascript.info/fetch-progress
فایل بزرگ مثلا 500 مگ و یا یک گیگ
https://javascript.info/fetch-progress
یکی از دوستان قدیمی برای تکمیل تیم فنی خود به دنبال جذب یک همکار است. زبان برنامه نویسی آنها سی شارپ (وب) است.
لطفا اگر تمایل داشتید به من پیغام دهید.
لطفا اگر تمایل داشتید به من پیغام دهید.
Programming is like any other sport. You might know the rules but you have to play to learn. -Zuckerberg.
Forwarded from mobile_programming
امشب یا فردا شب اگر فرصت شد میخواهم درباره نحوه پیاده سازی socket ارتباط با سرور در کد اندروید تلگرام کمی بنویسم. میتوانید اگر سوال داشتید توی گروه مطرح کنید در صورتی که سوادم اجازه دهد پاسخ میدهم :)
برای این منظور کمی سواد سیستم عامل و زبان برنامه نویسی لازم است.
برای این منظور کمی سواد سیستم عامل و زبان برنامه نویسی لازم است.
Forwarded from mobile_programming
Wikipedia
epoll
Linux-specific system call
Forwarded from mobile_programming
Forwarded from mobile_programming
Forwarded from mobile_programming
Forwarded from mobile_programming
Forwarded from mobile_programming
Forwarded from mobile_programming
برای انجام عملیات io (عملیات خواندن و نوشتن به طور کلی مثلا از فایل، از socket ,...)در سیستم عامل سه مدل وجود دارد:
select, poll, and epoll
مدل epoll مدرن تر و کاراتر از سایر مدل ها است
می دانیم که ارتباط با یک سرور این گونه است که ابتدا یک خط tcp بین ما و سرور برقرار می شود
می توانید این بخش را مانند open کردن یک فایل تصور کنید
سپس از درون این خط می توانید عمل read و write را انجام دهید. عمل write برای ارسال دستور به سرور عمل read برای خواندن پاسخ ارسال شده از سرور
بنابراین عمل ارتباط با یک سرور راه دور شبیه خواندم و نوشتن درون فایل است
سوال : یک دستور را درون خط ارتباطی با سرور نوشتیم. در چه زمانی پاسخ را از این خط ارتباطی برداریم؟ کدام thread مسول این کار است؟
#telegram #yum_07
select, poll, and epoll
مدل epoll مدرن تر و کاراتر از سایر مدل ها است
می دانیم که ارتباط با یک سرور این گونه است که ابتدا یک خط tcp بین ما و سرور برقرار می شود
می توانید این بخش را مانند open کردن یک فایل تصور کنید
سپس از درون این خط می توانید عمل read و write را انجام دهید. عمل write برای ارسال دستور به سرور عمل read برای خواندن پاسخ ارسال شده از سرور
بنابراین عمل ارتباط با یک سرور راه دور شبیه خواندم و نوشتن درون فایل است
سوال : یک دستور را درون خط ارتباطی با سرور نوشتیم. در چه زمانی پاسخ را از این خط ارتباطی برداریم؟ کدام thread مسول این کار است؟
#telegram #yum_07
Forwarded from mobile_programming
یک راه این است که ما یک پیغام برای سرور ارسال کنیم و سپس در فواصل زمانی مشخص به این خط ارتباطی/socket سر بزنیم و ببینیم پیغام جدید در این فایل و یا socket نسبت به آخرین باری که مراجعه کردیم وجود دارد یا نه
یک راه دیگر می تواند این باشد که ما یک تابع برای تغییرات درون socket به سیستم عامل معرفی کنیم و برویم کار خود را ادامه دهیم و وقتی تغییری در این سوکت بوجود آمد سیستم عامل به ما خبر دهد
#telegram #yum_08
یک راه دیگر می تواند این باشد که ما یک تابع برای تغییرات درون socket به سیستم عامل معرفی کنیم و برویم کار خود را ادامه دهیم و وقتی تغییری در این سوکت بوجود آمد سیستم عامل به ما خبر دهد
#telegram #yum_08
Forwarded from mobile_programming
Forwarded from mobile_programming
Forwarded from mobile_programming
توجه دارید که در ارتباط با سرور ممکن است شما از این مدل استفاده کنید: یک connection ایجاد کنید و درخواست ارسال کنید و پاسخ را دریافت کنید و سپس connection را ببندید(مدل connectionless). و یا ممکن است یک connection با سرور ایجاد کنید و یک ارتباط دو سویی (خواندن و نوشتن) با سرور بوجود آورد(Multiplexing)
— البته روش دوم ساده شده این حالت است و مالحظاتی دارد :)
#telegram #yum_11
— البته روش دوم ساده شده این حالت است و مالحظاتی دارد :)
#telegram #yum_11
Forwarded from mobile_programming
پس تا اینجا متوجه شدیم تلگرام یک تعدادی خطوط ارتباطی با سرور ایجاد می کند و از طریق آنها دستورات را ارسال و دریافت می کند.
به عنوان نمونه در تصویر می بینید در صورت نیاز به دانلود و یا upload خط ارتباطی مجزا و با datacenterهای خاص برقرار می شود.
یعنی خط ارتباطی که با آن داده ارسال و دریافت می کنید با خط ارتباطی ارسال و دریافت فایل کاملا متفاوت است
#telegram #yum_12
به عنوان نمونه در تصویر می بینید در صورت نیاز به دانلود و یا upload خط ارتباطی مجزا و با datacenterهای خاص برقرار می شود.
یعنی خط ارتباطی که با آن داده ارسال و دریافت می کنید با خط ارتباطی ارسال و دریافت فایل کاملا متفاوت است
#telegram #yum_12
Forwarded from mobile_programming
Forwarded from mobile_programming
خلاصه تا اینجا:
در موبایل، برای کارهای با نوع مختلف (ارسال و دریافت فایل و متن و apiهای سیستمی) خطوط/connection مختلف دارند که توسط thread پیاده سازی شده در زبان سی مدیریت می شوند و با استفاده از multiplexing امکان near real time در ارتباط را بوجود آورده اند. در موبایل تلگرام یک connection برای دریافت درخواست ها ایجاد می شود که شما از طریق ها درخواست/apiهای تلگرام را فراخوانی می کنید. یک connection برای push و دریافت پاسخ درخواست نیز ایجاد میشود. این connection دوم و یا همان push بنا به شرایطی (سرعت و یا بهتر است بگویم کیفیت ارتباط) ممکن است ایجاد نشود و از همان یک connection برای هر دو منظور استفاده شود.
#telegram #yum_14
در موبایل، برای کارهای با نوع مختلف (ارسال و دریافت فایل و متن و apiهای سیستمی) خطوط/connection مختلف دارند که توسط thread پیاده سازی شده در زبان سی مدیریت می شوند و با استفاده از multiplexing امکان near real time در ارتباط را بوجود آورده اند. در موبایل تلگرام یک connection برای دریافت درخواست ها ایجاد می شود که شما از طریق ها درخواست/apiهای تلگرام را فراخوانی می کنید. یک connection برای push و دریافت پاسخ درخواست نیز ایجاد میشود. این connection دوم و یا همان push بنا به شرایطی (سرعت و یا بهتر است بگویم کیفیت ارتباط) ممکن است ایجاد نشود و از همان یک connection برای هر دو منظور استفاده شود.
#telegram #yum_14