<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های mr_hqq</title><link>https://virgool.ir/feed/@mr_hqq</link><description>یه برنامه نویس معمولی اما با تجربه</description><language>fa</language><pubDate>2026-11-11 08:25:38</pubDate><image><url>https://files.virgool.ir/upload/users/176170/avatar/GCVPQn.png</url><title>mr_hqq</title><link>https://virgool.ir/@mr_hqq</link></image><item><title>react native subscription و EVENT EMITTER</title><link>https://virgool.ir/@mr_hqq/react-native-subscription-و-event-emitter-est1rz8k2fvd</link><description>سلام به همهاین چیزی که می خوام براتون توضیح بدم graphql Client تو react native هحدود یه سالیه دارم با graphql دسته و پنجه نرم می کنمچهار تا تابع داره که کار با همشون یکم سختی خودش رو دارهاول بذارین یه نگاه کلی به graph بنداریمگراف‌کیوال (GraphQL‎) یک زبان پرسمان به طور داخلی توسعه‌داده شده توسط فیس‌بوک در ۲۰۱۲ پیش از انتشار عمومی در ۲۰۱۵ است که یک جایگزین به معماری‌های REST و خدمات وب تک‌کاره ارائه می‌دهد و اجازه می‌دهد که کلاینت ها ساختار دادهٔ موردنیاز  را تعریف کنند و ساختار دقیقاً مشابه توسط کارساز بازگردانی می‌شود. ساختار  زمان اجرای آن سختگیر در نوع است که اجازه می‌دهد کلاینت ها مشخص کنند که  چه داده‌ای مورد نیاز است. این ساختار از مشکلات واکشی بیشتر و همچنین  واکشی کمتر داده‌ها جلوگیری می‌کند. گرف‌کیوال در زبان‌های مختلفی  پیاده‌سازی شده است، از جمله جاوااسکریپت، پایتون، روبی، جاوا، سی‌شارپ،  اسکالا، گو، الیکسر، ارلنگ، پی‌اچ‌پی، و کلوژر.(کپی از ویکی پدیا)mutation: این تابع برای ارسال دیتا استفاده میشه و تقریبا کار POST رو تو REST انجام میدهquery: تابعی هست که برای گرفتن دیتا استفاده میشه و کار get رو انجام میدهاین دو تا معمولا تابع پرکاربرد graph هستنچیزی که می خوام بگم از subscription هستبذارین اول بگیم این غول بی شاخ و دم چی هست اصلا...این بزرگوار یه بخش از همین graphql هست که بهتون قابلیت real time میدهکسایی که سوکت کار کردن می دونن real time چیه و یعنی شما بخواین یه داده رو مثلا بدون refresh صفحه وب یا reload کردن یه اپ بتونین دریافت کنین یا همون سیستمی که تو پیام رسان ها استفاده می کنن که subscription هم این قابلیت رو دقیقا بهتون میدهبذارین بهتون داستان مشکلم بگم؛تو یه پروژه ای ما باید سیستم پیام رسان درست می کردیم..رسیدیم به این موضوع که دو بخش باید پیام ها دریافت می شد و دو تا صفحه جدا بود یکی صفحه پیام ها که لیست تمام کسایی بود که پیام ارسال می کردن یه صفحه هم نمایش پیام ها بودما برای این که لیست اشخاص رو داشته باشیم اومده بودیم pulling میزدیم رو لیست پیام ها به جای اینکه real time کنیم و من با این موضوع اصلا نتونستم کنار بیام در صورتی که که پروژه تموم شده بود و تحویل داده بودیمش رفتم دنبال راه حل تا این که به یه package آشنا شدماز اونجایی که من چند سالی C# کار می کردم و با event و delegate آشنا بودم گفتم حتما تو javascript هم باید چنین چیزی وجو داشته باشه یا اگرم نبود باید پیادش کنم اما تو جستجو هام پیداش کردم اسمش eventEmitter هاین package به این شکل عمل می کنه که شما یه fetch یا function تو یه صفحه دیگه دارین و می خواین بدون اینکه تو یه صفحه دیگه تعریفش کنین اطلاعاتش رو بگیرین بهتون کمک می کنهحالا چطور تو subscription تعریفش کنیمشما در subscription، event های مختلف دارین مثل: onConnectedonConnectingو ...اما event اصلیش از تابع subscribe میاد که بعدش next میاد و خروجی بهتون میدهحالا چطور استفاده کنیمفراخونی می کنینداده رو ارسال می کنینو به این شکل دریافت می کنینهمینامیدوارم خوشتون بیاد...</description><category>mr_hqq</category><author>mr_hqq</author><pubDate>Sat, 02 May 2020 14:45:00 +0430</pubDate></item></channel></rss>