خب کدشو زدم نتیجه هم گرفتم، ولی اون بحث "پوش نوتیفیکشن" رو هم بنا رو گزاشتم بر اعتماد که برا ویندوز/WPF وجود نداره ( البته شاید هم مشکل از جای دیگه بوده که نرفتم سراغش)
Untitled.jpg
روال کارم اینطور بود که یه دیتابیس سمت سرور ایجاد کردم، که سه تا فایل ManageNotifications.php و ReadNotifications.php و dbConfig.php رو داره، یه دیتابیس هم سمت پروژه C# ( پروژه مخصوص کاربرا ) ایجاد کردم تا اعلامیه هایی که قبلا از سرور گرفتیم رو دوباره نگیریم! ( در جهت کاهش نت مصرفی کاربران، اینقدر بفکر کاربرا هستم من)
فایل dbConfig.php که یوزر نیم و پسورد های دیتابیس داخلش قرار داره.
پروژه اصلی C# ( مخصوص یوزر ها که عکسشو در بالا میبینید ) برا خوندن اعلامیه ها از فایل ReadNotifications.php استفاده میکنه، کار این فایل اینه که میره اعلامیه هایی که داخل دیتابیس مربوطه در سمت سرور قرار داره رو میخونه و به عنوان پاسخ ارسال میکنه؛ سمت پروژه C# ، هم درجا داده هایی که گرفتمو در دیتابیس پروژه C# ذخیره میکنم و نمایش کاربر میدم.
پروژه فرعی C# ( که مخصوص من برنامه نویس هستش که عکسشو در پایین میبینید ) برا ارسال اعلامیه از فایل ManageNotifications.php استفاده میکنه، کار این فایل اینه که اعلامیه ای که بهش دادیم رو به دیتابیس سرور اضافه میکنه.
حالا اصل داستان، یه timer برا پروژه باید ایجاد کرد تا مثلا هر 1 ساعت یکبار بره فایل ReadNotifications.php رو بخونه و اعلامیه های جدید رو نشون بده ( اگه هم اعلامیه جدیدی موجود نبود که هیچی )، چون بحث "پوش نوتیفیکشن" ( تعریفشو دوستمون کردن در پست بالا، دلیل عدم استفاده شو هم در بالا و پست قبلیم ذکر کردم ) رو استفاده نکردیم، مجبورم به کمک تایمر اینکارو بکنیم، مثلا تایمرو هر نیم ساعت بزارید یا هر زمانی که حال کردید
البته فعلا نگران بحث امنیتی کدای سمت سرور هستم، امروز فرداس که سایتم هک بشه( قبلا تجربشو داشتم
) کدا که کامل شد میزارم اینجا، البته اگه یادم نره
، فک کنم بکار خیلی از پروژه ها بیاد
البته در عکس زیر بهتر بود اون قسمت خلاصه و محتوی رو یکی کنم و مثلا یه محدودیت بزارم بگم 300 کلمه اول محتوی، میشه خلاصه، که تو وردپرس ( یجور سیستم عامل برا سایت ها و وبلاگ ها هستش ) هم همینطوره، کلا روش منطقیش و ساده ترشم همینه، حالا من بی سلیقگی کردم شاید هم حواسم نبوده و اینطور کدشو زدم. احتمالا هم بعدا اصلاحش کنم.
Untitled3.png
پس من فعلا برم سراغ امنیت کدای سمت سرور چون استرس دارمو بحث "پوش نوتیفیکشن" چون داره قلقلم میده
![]()
ولی این داستان "پوش نوتیفیکشن" هم فک کنم با تایمر باشه دیگه، که هر دقیقه میره بررسی میکنه ببینه خبری هس یا نه، شاید هم نه، چون تو پروژه های مث چت روم و اینجور چیزا مثلا باید به صورت Real time عمل کنه که نیازه هر ثانیه شاید هم زمانی کمتر در حدود نیم ثانیه یکبار بررسی کنه که اینطوری بابای نت در میاد؛ فک کن ثانیه ای 5 بار درخواست داده بفرستی، هر شبانه روز ( 24 ساعت ) حدود 86400 ثانیه داره، پس حدود 432000 تا درخواست باید ارسال کنیم به سرور، هر درخواست رو هم 0.05KB فرض کنی ( یکی از درخواستایی که من به وب میدم حجمش تو این مایه هاس )، در مجموع میشه حدود 21.6MB، که حالا با کاهش تعداد داده های ارسال و دریافتی میشه حجم هر درخواست رو به کمتر از 0.01KB کاهش داد مثلا که اون وقت حجم نت مصرفی کاربر تقریبا میشه حدود 4.3MB؛ ولی خب برا پروژه من همون هر 1 دقیقه یک درخواست دریافت داده هم ارسال بشه هم راضی هستیمحجم مصرفی میشه چیزی حدود 15KB، تعداد درخواست ها هم میشه 1440 تا، از نظر حجمی که برا کاربر خوبه، اما از نظر تعداد درخواست ارسالی از نظر سرور نمیدونم خوبه یا نه، چون مثلا 1000 نفر از نرم افزار استفاده کنن اون 1440 برا سرور میشه 1440000 و...؛ پس اینجا از دید حجم مصرفی کاربر ( برا نرم افزار خودم ) میشه گفت گور بابای "پوش نوتیفیکشن"
ولی از دید تعداد درخواست هایی که هر کاربر به سمت سرور ارسال میکنه، نظری ندارم که خوبه یا بد، ولی برا پروزه هایی مثل چت روم، بابای سرور در میاد اگه هرکاربر 432000 تا درخواست ارسال کنه سرور؛ دوس دارم بدونم این "پوش نوتیفیکشن" چه کلکی سوار کرده برا کارش ( از چه روشی استفاده کرده )؛ ولی یه چی هم هستش، اونم این که ممکنه برا کارهای مختلف به لینکهای مختلف درخواست داده بدی، اون وقت تعداد درخواستا و حجم مصرفی به صورت ناجوری زیاد میشه که!
توجه : در بالا داده های فوق رو برای 24 ساعت حساب کردم.
یه سرچ کوچیک درباره Push Notifications و WPF
1) WPF Support for Push Notifications : تو این لینک که آبجی تیشه به ریشه امیدها زد، مگه خبر ممر یوخدو.
2) Push Notification Service for WPF based desktop app? : تو اینم اولی میگه باید از UWP استفاده کنی این که هیچ؛ بعدی میگه از Microsoft.Azure.NotificationHubs استفاده کن، که لیست قیمتاش در این لینک ( Notification Hubs pricing ) هستش که گزینه رایگان هم داره، تا 1 میلیون پوش در ماه ( فک کنم ) رایگانه، بنظر گزینه خوبی میاد، از این سرویس استفاده کردید تا حالا؟ چطوره؟
3) PushNotification to WPF Applications : تو این لینکم که طرف میگه از WCF استفاده کن، که اصلا نه میخوام بدونم WCF چیه نه هیچ چیز دیگه ای، حوصله یاد گرفتن چیز جدید ندارم بخاطر یه کار کوچیک و اختیاری "پوش نوتیفیکشن"
فک کنم همون بیخیال "پوش نوتیفیکشن" بشم و برم از همون روش 1 دقیقه یکباری که در بالا رمانشو نوشتم استفاده کنم، راه دیگه ای فعلا سراغ ندارم، ولی میترسم تعداد کاربرا زیاد بشه، بعد تعداد درخواستا زیاد بشه بعد سمت سرور به مشکل بخورم، نمیدونم شاید هم به مشکل نخورم.![]()





)
( قبلا تجربشو داشتم
، فک کنم بکار خیلی از پروژه ها بیاد 
و بحث "پوش نوتیفیکشن" چون داره قلقلم میده

پاسخ با نقل قول