PDA

View Full Version : سرور کلاینتی در وب



oYaMaa
یک شنبه 22 آذر 1394, 19:12 عصر
با سلام
من میخوام برنامه تحت ویندوزم رو به یک صفحه وب متصل کنم طوری که وب بشه سرورم و برنامه ها کلاینت، حالا برای بررسی آنلاین بودن برنامه ها باید مثلا هر 5 دقیقه یک بار یه ping (یک پیغام تعریف شده) بفرستن به سایت، که این طوری اگه بعد 5 دقیقه ping نیومد یعنی اون برنامه آفلاین هستش.
ولی چطور تو وب (php) 5 دقیقه یک بار چک کنم پیغام اومده؟
اگه 5 مین یبار رفرش کنم ترافیک هاست نابود میشه.
راه حلی هست؟!

Unique
دوشنبه 23 آذر 1394, 00:30 صبح
راستش روشت زیاد جالب نیست.
لازم نیست هر ۵ دقیقه چیزی را چک کنی ،‌ کافیه در زمان لاگین یک جدول از آخرین بار مشاهده شدن کاربر ها داشته باشی ، حالا هر درخواستی که از برنامه Desktop به وب میره میاد و آخرین زمان مشاهده کاربر را ثبت میکنه. هر بار هم که میخوای برای هر کاربری زمانش را ثبت کنی کافیه زمان هایی که بیش از ۳۰ دقیقه (۵ دقیقه چیه ؟! مگه اینکه بخوای نرم افزار چت بنویسی) هست به روز نشدن را حذف کنی و اینطوری کاربر از لاگین بودن در میاد و اگه درخواست جدیدی بفرسته باید دوباره لاگین کنه در ضمن همیشه میتونی توی برنامه وب گزارش بگیری چه کسانی آنلاین هستن و آخرین فعالیتشون کی بوده.

oYaMaa
دوشنبه 23 آذر 1394, 11:02 صبح
سلام
ممنون از جوابتون، ولی منظورم از اینکه چطور چک کنم این بود که طوری باشه به سرورم فشار نیاد.
در این پروژه 30 دقیقه زمان زیادیه نهایت باید همون 5 دقیقه باشه.ولی اگر قرار باشه هر 5 دقیقه صفحه رفرش شه که نمیشه!!
راه حلی نیست؟!!!

us1234
دوشنبه 23 آذر 1394, 15:59 عصر
سلام
ممنون از جوابتون، ولی منظورم از اینکه چطور چک کنم این بود که طوری باشه به سرورم فشار نیاد.
در این پروژه 30 دقیقه زمان زیادیه نهایت باید همون 5 دقیقه باشه.ولی اگر قرار باشه هر 5 دقیقه صفحه رفرش شه که نمیشه!!
راه حلی نیست؟!!!

راه حل این است که شما کل دیتابیس را لود نکنید ، همیشه اون چیزی که احتیاج دارید از تیبل های بیرون بکشید مثلا با یک لیمیت ساده order by id DESC LIMIT 5
و تا میتوانید از سلکت زدن قسمتهای غیر ضروری تیبل خودداری کنید .

ولی جدا از مساله اون چه هاستیه که اگر 5 دقیقه یکبار یک صفحه اش ریفرش شود به آن فشار میاد ؟
پس اگر مثلا گوگل بات و یاهو بات همزمان به سایت شما بیایند و شروع به گردش کنند احتمالا سایت شما دان میشه ...

5 دقیقه ریفرش شدن یک صفحه آنقدر کوچک است که اصلا قابل چشم پوشی است ، شما روی 50 کاربر آنلاین همزمان که هر کدام در ثانیه 1 پیچ لود میکنند حساب کنید نه این عداد کوچک ...

دانیال دزفولی
دوشنبه 23 آذر 1394, 16:49 عصر
راستش روشت زیاد جالب نیست.
لازم نیست هر ۵ دقیقه چیزی را چک کنی ،‌ کافیه در زمان لاگین یک جدول از آخرین بار مشاهده شدن کاربر ها داشته باشی ، حالا هر درخواستی که از برنامه Desktop به وب میره میاد و آخرین زمان مشاهده کاربر را ثبت میکنه. هر بار هم که میخوای برای هر کاربری زمانش را ثبت کنی کافیه زمان هایی که بیش از ۳۰ دقیقه (۵ دقیقه چیه ؟! مگه اینکه بخوای نرم افزار چت بنویسی) هست به روز نشدن را حذف کنی و اینطوری کاربر از لاگین بودن در میاد و اگه درخواست جدیدی بفرسته باید دوباره لاگین کنه در ضمن همیشه میتونی توی برنامه وب گزارش بگیری چه کسانی آنلاین هستن و آخرین فعالیتشون کی بوده.

اینکه با هر بار سر زدن کاربر به صفحه آخرین بازدیدش آپدیت بشه سرعت پایین نمیاد ؟

راهکار چیه ؟

Unique
سه شنبه 24 آذر 1394, 02:06 صبح
ممنون از جوابتون، ولی منظورم از اینکه چطور چک کنم این بود که طوری باشه به سرورم فشار نیاد.
در این پروژه 30 دقیقه زمان زیادیه نهایت باید همون 5 دقیقه باشه.ولی اگر قرار باشه هر 5 دقیقه صفحه رفرش شه که نمیشه!!
راه حلی نیست؟!!!

دوست عزیز ، نگرفتی من چی میگم ! اصلا لازم نیست چیی را چک کنی. وقتی کاربر از برنامه Desktop داره لاگین میکنه یا اطلاعات را میبینه یا هر کار دیگه ای انجام میده توی همان درخواستی که برای این کار ها میفرسته بیا و آخرین باری که درخواستی ازش اومده ثبت کن ! ممکنه ۱ ثانیه باسشه ممکنه ۵ دقیقه باشه یا ۲۰ دقیقه ،‌ بستگی داره داشته چیکار میکرده توی برنامه. حالا اگه درخواستی (هر درخواستی ،‌مهم نیست چی باشه) داشت و دیدی بیش از ۳۰ دقیقه گذشته ازش میخوای دوباره لاگین کنه.

ببین تا دقیق توضیح ندی پروژه چیه و تعامل کاربر و برنامه Desktop و سایت شما چیه من بیشتر نمیتونم کمکت کنم. مثال هایی که میزن مممکنه اصلا جالب نباشه چون نمیدونم چی میخوای. فرض میکنم میخوای کنترل پانل سایتت را Desktop بنویسی !


اینکه با هر بار سر زدن کاربر به صفحه آخرین بازدیدش آپدیت بشه سرعت پایین نمیاد ؟
نه ، مگه یک Update Uqery تیو جدولی که زورکی ۱۰۰۰ تا رکورد مربوط به کاربارن آنلاین داره چقدر از سیستم منابع میبره !؟