سلام
میخواستم بدونم برای اینکه نشان بدیم تغییرات به صورت لحظه ای تغییر میکنه تو لاراول چیکار باید کرد. منظورم این هستش که api از سایت خارجی گرفتیم و میخوایم وقتی مثلا شاخصی تغییری کرد این رو بهمون اطلاعات بده .
با تشکر
از روش های معمولی چنین کاری شدنی نیست تا جایی که میدونم و تا شما درخواست اطلاعات جدید ارسال نکنید نمی تونید متوجه بشید آیا تغییراتی رخ داده یا نه.
یک راه دیگه اش برقراری ارتباط به شکل وب سوکت و دو طرفه هست که در اینصورت باید این کانکشن باز بمونه و اینطوری هر اتفاقی اون طرف بیفته به شما هم خبر داده میشه
یک روش دیگه هم شاید استفاده از web hook ها باشه.
در هر صورت تمامی این راه ها نیازمند اعمال از سمت ارائه دهنده API هست و شما خودتون به تنهایی اگر خواسته باشید کاری انجام بدید تنها راهش ارسال درخواست جدید هست. یا دستی یا اتومات که میشه همون کرالر.
این که اون سایت بهتون اطلاع بده که بستگی به اونا داره !
اگر اون api ی که گرفتید یک webhook طور داشته باشه میتونید یک ادرس api شما بهش بدید که هر وقت تغییری رخ داد به سایت شما درخواست بزنه.
در غیر این صورت باید خودتون ساختارش رو درست کنید که مثلا هر یک دقیقه به اون api درخواست بزنید، اطلاعات جدید رو که گرفتید، Broadcast کنید به کاربرهایی که لاگین هستند.
برای Broadcast کردن مستندات خود لاراول رو بخونید از websocket برای برقرای ارتباط با کلاینتها استفاده میکنه.
در قالب معمولی وب
این کار با استفاده از Event ها و Broadcasting انجام میشه..
هر وقت اتفاقی بیفته (رویدادی اتفاق بیفته)، از طریق Broadcasting میشه اون رو در سمت جاوااسکریپت هم دریافت کرد
اما در مورد یک API
بجای کاربر در یک API مفهوم Consumer یا استفاده کننده رو داریم
و اساس کار به این شکله که:
پس وقتی اپلیکیشن شما خودش Consumer یک API دیگه هست...
در بهترین حالت اون API هوک رو ارائه میده و اطلاعات آپدیت شده رو برای شما میفرسته.
در غیر این صورت: شما باید بر اساس مهم بودن اطلاعات، یک بازه زمانی رو انتخاب کنی ( مثلا هر ۱۰ ثانیه) یه درخواست بفرستی و نتایج رو به روز کنی.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟