نمایش نتایج 1 تا 4 از 4

نام تاپیک: ارسال اعلامیه به پروژه C#‎

  1. #1

    ارسال اعلامیه به پروژه C#‎

    سلام، میخوام یه سری اعلامه به پروژه ارسال کنم،
    مثلا نسخه جدید منتشر شد، لیست تغییرات در این لینک، آبدید به نسخه جدید در این لینک.
    یا مثلا هر اعلامه دلبخواهی که بخوام برا کاربرایی که از نرم افزارم استفاده میکنن، ارسال کنم، مثلا : پرسپولیس ساعت فلان امروز بازی داره، استقلال ساعت بیسال فردا بازی داره.
    دقیقا مثل چیزی که تو ویژال استودیو هستش ( عکس زیر )

    چیزی که به ذهنم میرسه اینه که یه دیتابیس تو هاست ایجاد کنم که اعلامیه ها داخلش ذخیره بشه، و یه کد PHP که هربار پروژه C#‎ بهش درخواستی ارسال کرد، آخرین اعلامیه ( یا اعلامیه ها ) رو براش ارسال کنه، اینطوری مثلا هر 1 ساعت یکبار پروژه C#‎ من میاد یه درخواست به صفحه وب فوق ارسال میکنه و اگه پیغام جدیدی موجود بود، به کاربر نمایش میده.

    سوال : آیا این روش درست و اصولی هستش؟ آیا روش بهتره یا کلا روش دیگه ای وجود داره؟

    Untitled.png

  2. #2

    نقل قول: ارسال اعلامیه به پروژه C#‎

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    سلام، میخوام یه سری اعلامه به پروژه ارسال کنم،
    مثلا نسخه جدید منتشر شد، لیست تغییرات در این لینک، آبدید به نسخه جدید در این لینک.
    یا مثلا هر اعلامه دلبخواهی که بخوام برا کاربرایی که از نرم افزارم استفاده میکنن، ارسال کنم، مثلا : پرسپولیس ساعت فلان امروز بازی داره، استقلال ساعت بیسال فردا بازی داره.
    دقیقا مثل چیزی که تو ویژال استودیو هستش ( عکس زیر )

    چیزی که به ذهنم میرسه اینه که یه دیتابیس تو هاست ایجاد کنم که اعلامیه ها داخلش ذخیره بشه، و یه کد PHP که هربار پروژه C#‎‎ بهش درخواستی ارسال کرد، آخرین اعلامیه ( یا اعلامیه ها ) رو براش ارسال کنه، اینطوری مثلا هر 1 ساعت یکبار پروژه C#‎‎ من میاد یه درخواست به صفحه وب فوق ارسال میکنه و اگه پیغام جدیدی موجود بود، به کاربر نمایش میده.

    سوال : آیا این روش درست و اصولی هستش؟ آیا روش بهتره یا کلا روش دیگه ای وجود داره؟

    Untitled.png
    سلام بله همین روش اصولی هستش شما باید هر چند وقت یکبار سرورتون رو برای دریافت اخرین اطلاعیه ها چک کنید، حالا میتونید فقط زمانی که برنامه رو اجرا کردید این کارو انجام بدید یا مثلا هر 1 ساعت و...
    این قضیه توی اندروید به کمک سرویس ها و قابلیت پوش نوتیفیکشن انجام میشه، وقتی از سایت نوتیفیکشن ارسال میشه بلافاصله تو برنامه دریافت میشه، البته فعلا این پوش نوتیفیکشن برای ویندوز پیاده سازی نشده زمزمه هایی بود که قراره بزودی AppCenter این ویژگی رو ایجاد کنه ولی فعلا خبری نیست

  3. #3

    نقل قول: ارسال اعلامیه به پروژه C#‎‎

    تو این لینک ( Push Notification Service for WPF based desktop app? ) یکی گفته که تو UWP پشتیبانی میشه این داستان ، یکی گفته microsoft.azure داره این ویژگی رو ( راستی مگه این azure یه جور دیتابیس آنلاین نی که برا استفاده ازش باید پول داد؟ )
    Windows Push Notification Services (WNS) overview
    Tutorial: Send notifications to Universal Windows Platform apps using Azure Notification Hubs
    پس تا اینجا یه WNS داریم و یه Azure Notification Hubs که خب هیچ کدوم بکار WPF نمیاد

  4. #4

    نقل قول: ارسال اعلامیه به پروژه C#‎

    خب کدشو زدم نتیجه هم گرفتم، ولی اون بحث "پوش نوتیفیکشن" رو هم بنا رو گزاشتم بر اعتماد که برا ویندوز/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 دقیقه یکباری که در بالا رمانشو نوشتم استفاده کنم، راه دیگه ای فعلا سراغ ندارم، ولی میترسم تعداد کاربرا زیاد بشه، بعد تعداد درخواستا زیاد بشه بعد سمت سرور به مشکل بخورم، نمیدونم شاید هم به مشکل نخورم.
    آخرین ویرایش به وسیله md3848 : چهارشنبه 08 اردیبهشت 1400 در 21:27 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •