توصیه شده, RTOS, اینترنت اشیاء, پروژه, پروژه آردوینو

اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر

اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر

چند سالی می‌شود که تلگرام و کلیه متعلقاتش فیلتر شده است و دوجین نرم افزارهای پیام‌رسان داخلی جهت جایگزینی معرفی شده‌اند. اما همچنان کاربرهای ایرانی با توجه به آمار رسمی منتشر شده و همچنین میزان دانلود پیام‌رسان‌های داخلی، تمایلی به استفاده از نرم افزارهای پیام رسان داخلی نشان نمی‌دهند و به کمک انواع و اقسام فیلترشکن‌ها سعی می‌کنند که دسترسی خود را به تلگرام حفظ کنند. از طرفی با رشد روز افزون دستگاه‌های IOT و کاربردی شدن آنها نیاز بستر تعاملی ساده با این دستگاه‌ها بیش از پیش حس می‌شود! و چه بستری مناسب‌تر و در دسترس تر از پیام‌رسان! با جزییات بیشتر این اتصال هیجان انگیز به ربات تلگرام بدون فیلتر با سیسوگ همراه باشید:)

 

چرا و چطور پیام رسان تلگرام

علامت تلگرام

همان‌طور که در مقدمه اشاره کردم همچنان پیام‌رسان تلگرام جزو پر استفاده ترین پیام‌رسان‌ها بین کاربران ایرانی است. پس اگر قرار باشد پیام‌رسانی را برای این اتصال (اتصال دستگاه‌های IOT و پیام‌رسان) انتخاب کنیم بهترین گزینه همچنان با اختلاف زیاد تلگرام است. تا قبل از فیلترینگ رسمی تلگرام در کشور در چند مقاله (آموزش اتصال ربات تلگرام به آردوینو – قسمت اول و آموزش اتصال ربات تلگرام به آردوینو – قسمت دوم) سعی کردیم نحوه اتصال دستگاه‌های IOT را با این پیام‌رسان آموزش دهیم و در ادامه طی “پروژه آموزش اتصال ربات تلگرام به آردوینو ESP8266 – ربات تلگرام در خانه” با ذکر یک مثل عملی جهت خاموش و روشن کردن لامپ‌های یک خانه نمونه کاربردی آن را بررسی کردیم.

اما با فیلتر شدن تلگرام ورق برگشت! هرچند که تلگرام از انواع مختلف پراکسی پشتیبانی می‌کند، اما پیاده سازی آنها در دستگاه‌هایی که مقدار حافظه RAM و قدرت پردازشی محدودی دارند کاری ست بس دشوار! (البته که نشدنی نیست و پروتکل‌های سبک مثل socks و http را به راحتی می‌توان پیاده سازی کرد.) برای همین سعی کردیم که یک راه حل ساده و البته ارزان را در این مقاله بررسی کنیم که در ادامه بیشتر آن را توضیح خواهیم داد.

 

چرا از پروتکل های استاندارد استفاده نکنیم ؟

VPN

همانطور که احتمالا میدانید پروتکل های متنوعی وجود دارند که میتوان از آنها برای دسترسی به یک سرور (مثلا تلگرام) استفاده کرد. پروتکل های سبک و سنگینی که پیاده سازی آن در سخت افزار گاهی نشدنی و در مواردی هم بسیار دشوار است. اما چیزی که ممکن است ندانید این است که برخی از این پروتکل‌ها تنها در داخل ایران قابل دسترسی دارند به عنوان نمونه پروتکل VPN برای ارتباط داخل به خارج از ایران مسدود است (البته اینجا منظور خود VPN است نه انواع رمزگذاری شده آن) یا پروتکل SOCKS هم چنین شرایطی دارد. پس اگر آنها را حتی در سخت افزار پیاده سازی کنیم با چالش دیگری روبرو خواهیم بود و آن هم امکان دسترسی است.

البته کار نشد ندارد. مثلاً برای ایجاد دسترسی SOCKS ابتدا باید یک سرور داخلی داشته باشید که دستگاه‌های شما از طریق SOCKS با این سرور در ارتباط باشند (قبلاً گفتیم این پروتکل‌ها در شبکه داخل ایران همچنان کار می‌کنند) بعد سرور شما با یکی از پروتکل‌های رمز شده ارتباط با خارج از ایران داشته باشد و بدین طریق قادر خواهید بود که دستگاه IOT خود را به ربات تلگرام متصل کنید. اما این راه فارغ از چالش‌های فنی که ممکن است ایجاد کند هزینه زیادی در بر خواهد داشت که شاید برای خیلی کسب و کارها انجام این هزینه منطقی نباشد.

 

ایده اولیه راه حل اتصال به سرور تلگرام

اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر

با توجه به استدلال قبل، راه حل مورد نظر نباید هزینه زیادی داشته باشد و تا جای ممکن باید ساده باشد تا بتوان به آن را بر روی پلتفرم‌های IOT پیاده سازی کرد! اما چطور چنین چیزی ممکن می‌شود؟ خوب مسئله زیاد پیچیده‌ای نیست.

یک مدل حمله و اسنیف اطلاعات وجود دارد به اسم Man-in-the-middle! نحوه کار به این شکل است که هکر بین فرستنده و گیرنده قرار می‌گیرد و ترافیک را رصد می‌کند! ما در اینجا نمی‌خواهیم ترافیک خودمان را رصد کنیم، بلکه می‌خواهیم از داخل ایران به خارج از ایران منتقل کنیم. پس از همین الگو استفاده خواهیم کرد. یعنی یک نرم افزاری خواهیم داشت که بین دستگاه‌های اینترنت اشیاء (IOT) و سرور تلگرام قرار خواهد گرفت و کارش این است که اطلاعات را از دستگاه دریافت کند به سرور تلگرام ارسال کند، سپس جواب را از سرور تلگرام دریافت کرده و بدون فیلتر به برنامه ربات تلگرام در دستگاه برساند.

حالا که کلیت موضوع و راه مشخص شد، انتخاب پلتفرم مناسب باقی می‌ماند، این برنامه واسط را با هر زبانی می‌شود نوشت، اما ارزان بستری که می‌شود پیدا کرد بسترهاست اشتراکی و زبان PHP است. هزینه سالیانه تهیه یک‌هاست اشتراکی در مثلاً آلمان حدود ۲۵ هزار تومان یا حتی کمتر از این مقدار است و دامنه هم حدود ۱۵ تومان برای ۳ سال است. واقعاً چه چیزی کم هزینه‌تر از این می‌توان پیدا کرد؟

 

تغییرات لازم در کتابخانه ZeusTg

قبلاً در “پروژه آموزش اتصال ربات تلگرام به آردوینو ESP8266 – ربات تلگرام در خانه” کتابخانه ZeusTg را از صفر نوشتیم و سورس آن را می‌توانید از طریق گیت هاب سیسوگ پیدا کنید. در این کتابخانه از SOCKET برای اتصال به سرور استفاده می‌کنیم. لازم است که مکانیسم سوکت را به وب کلاینت تغییر دهیم تا قادر باشیم درخواست‌ها را از طریق متدهای POST و GET به سرور ارسال کنیم.

خوشبختانه برای این کار نیاز نبود تا کل کتابخانه را از اول بازنویسی کنیم. تنها تغییرات کوچکی لازم بود تا در فانکشن SendCommand اعمال بشود:

 

البته فانکشنی هم برای تنظیم کردن آدرس پراکسی به کتابخانه اضافه شده است که تنها لازم است آدرس پراکسی را در آن تنظیم کنیم و دیگر تمام! همه چیز به خوبی کار خواهد کرد.

 

دانلود و راه اندازی کد آردوینو ESP8266

یکی دیگر از آموزش های آردوینو نیز آموزش اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر فایل پروژه در انتهای پست پیوست شده است و شما می‌توانید به‌صورت رایگان آن را دانلود کنید. کدها درون نرم افزار VSCODE و با استفاده از افزونه platformIO نوشته شده‌اند. با توجه به اینکه هنوز IDE حرفه‌ای تر و رسمی آردوینو منتشر نشده است، بهتر است به جای نرم افزار فعلی آردوینو، از platformIO استفاده کنید. آموزش پلت فرم آی او قبلاً در سیسوگ منتشر شده است. همچنین شما می‌توانید کد برنامه را بدون هیچ مشکلی درون نرم افزار خود آردوینو باز کنید. به یاد داشته باشید که درون کد، حتماً مقادیر زیر را با اطلاعات مربوط به خود تکمیل کنید:

 

راه اندازی پراکسی سمت سرور

اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر

برای خریدهاست حتماً باید دقت داشته باشید که هاست ایران خریداری نکنید و حتماً هاست خارج از ایران باشد. همچنین قادر به پشتیبانی PHP نیز باشد. تنظیم دامنه نیز معمولاً توسط خود شرکت‌های هاستینگ انجام می‌شود. تنها کافی است که یک فایل با اسم دلخواه درون‌هاست خود ایجاد کنید و محتوای زیر را درون آن قرار دهید:

برای اطمینان از این که تمام کارها را به درستی انجام داده‌اید، اگر آدرس فایل را در مرورگر وارد کنید باید با صفحه‌ای به شکل زیر مواجه شوید.

اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر

 

اگر نوشته بالا رو دیدید، یعنی همه چیز آماده تست است و ربات تلگرام شما می‌تواند بدون فیلتر کار کند.

ممکن است این سؤال برایتان پیش آمده باشد که آدرس صفحه را چگونه به دست بیاورید؟ فرض کنید نام دامنه شما example.ir باشد و فایل را با اسم xbot.php در سرور ذخیره کرده باشید. بدیهی است که آدرس فایل به شکل زیر خواهد بود.

 

و به شکل زیر باید در تابع SetProxyHost استفاده شود:

 

شما با استفاده از این کتابخانه و برنامه می‌توانید طیف وسیعی از دستگاه‌های اینترنت اشیاء IOT را بدون فیلتر به ربات پیام رسان تلگرام متصل کنید و این که چه وسیله‌ای را به چه شکلی متصل کنید، برمی گردد به میزان خلاقیت شما در استفاده از این کتابخانه. از درب ورودی منزل یا کرکره برقی مغازه و پارکینگ تا سیستم‌های حضور و غیاب … همه و همه قادر هستند از این کتابخانه استفاده کنند.

 

 

فیلم عملکرد مدار

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

22 دیدگاه در “اینترنت اشیاء و اتصال به ربات تلگرام بدون محدودیت و فیلتر

  1. Avatar for سعید آریانژاد سعید آریانژاد گفت:

    با سلام
    ممنون از آموزش‌های عالی‌تون
    من این پروژه رو امتحان کردم، از vscode و platformio استفاده کردم که زمان کامپایل پروژه خطا داد و با اضافه کردن یه شی httpclient به کد ZeusTgBot مشکل حل شد؛ وقتی به ربات پیام می‌دم توی SerialMonitor نمایش داده می‌شه اما در سمت ربات چیزی نشون داده نمی‌شه.

    یکم تازه کارم ممنون می‌شم راهنماییم کنید

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      سلام این پروژه مربوط به خیلی وقت پیش هست، و چیز زیادی رو ازش خاطرم نیست
      اگه بتونید یه مقدار با جزییات بیشتری در مورد مشکل توضیح بدید ممنون میشم
      در ضمن هاستی که تهیه کردید داخل ایران است یا خارج از ایران ؟

      1. Avatar for سعید آریانژاد سعید آریانژاد گفت:

        با سلامی دوباره
        در ابتدا باید بابت وقتی که می‌ذارید تشکر کنم.
        فکر کنم مشکل از کد php من بود، فقط دوباره کپی-پیست کردم درست شد. [هاست آلمان هست]

        الآن یه مشکل جدید دارم D:
        یه مقدار کد رو تغییر دادم (البته به کتابخونه‌ها دست نزدم) و از پارسری که واسه Json نوشته بودید استفاده کردم که یه رشته رو که شامل چند سطر دیتا هست واسم پارس کنه.
        این کد:
        JsonObject& root = jsonBuffer.parseObject(result);
        که این دیتا رو پارس می‌کنه:
        {“ID”:”185788128″,”Data”:{“First”:”Saeid”,”Last”:”Aryanejad”,”Expir”:null}},{“ID”:”976453245″,”Data”:{“First”:”Ali”,”Last”:”Baba”,”Expir”:”2023-12-29″}}
        زمانی که سایز متغیر root رو چک می‌کنم میزنه ۲ ولی بلد نیستم سطرها رو جداگونه بخونم، فقط به اطلاعات سطر اول می‌تونم دسترسی داشته باشم.

        از این پروژه خیلی لذت می‌برم؛ کمی php هم یاد گرفتم، واقعاً ممنونم

        1. Avatar for Zeus ‌ Zeus ‌ گفت:

          خواهش میکنم
          خوشحالم که کمک کننده بوده
          منظور شما از سطر دوم متوجه نشدم

  2. Avatar for سید سید گفت:

    سلام با توجه به تحریم blynk اگه بشه سرور محلیش رو روی سرور سیسوگ راه بندازید که بتونیم از اون داخل ایران استفاده کنیم خیلی عالی میشه

  3. Avatar for علی اکبر بصیری علی اکبر بصیری گفت:

    سلام میشه آموزشی برای نود (node-red-contrib-telegrambot) در node-red ارایه کنید برای اتصال نود رد به تلگرام

  4. Avatar for مهران مهران گفت:

    سلام خیلی ممنونم از مطالب مفیدتون
    یه خواهشی داشتم من یه پرو›ه خیلی مهم با ESP32 داشتم و کدم برای زمانی که تلگرام فیلتر نبود کاملا درست کار می کرد و الان که فیلتر هست درست کار نمی کنه. یکی از خوبی های ESP32 cam این بود که میشد باهاش عکس انداخت و بعد از طریق بات تلگرامی اون رو ارسال میکرد. من هر چی سعی کردم نتونستم این کد جنابعالی رو برای استفاده از عکس و همچنین در ESP32 cam راه اندازی کنم. عاجزانه خواهش میکنم. اگه ممکنه کمکم کنین. و این کد رو برای ESP32 cam بازنویسی بفرمایید که من بتونم باهاش از طریق بات تلگرامی تصاویرم رو ارسال کنم. خیلی خیلی ممنونم
    کد ESP32cam که وقتی تلگرام فیلتر نبود درست کار میکرد این بود :

    #include
    #include
    #include
    #include “soc/soc.h”
    #include “soc/rtc_cntl_reg.h”
    #include “esp_camera.h”
    #include
    #include

    const char* ssid = “shad-iot”;
    const char* password = “m.SH*2_3-({})5!7”;

    // Initialize Telegram BOT
    String BOTtoken = “1508920086:AAGbffXcj_-D2i8PP1URxIgf4_7jQJTJ9wY”; // your Bot Token (Get from Botfather)

    // Use @myidbot to find out the chat ID of an individual or a group
    // Also note that you need to click “start” on a bot before it can
    // message you
    String CHAT_ID = “101129797”;
    bool sendPhoto = false;

    WiFiClientSecure clientTCP;
    UniversalTelegramBot bot(BOTtoken, clientTCP);

    #define FLASH_LED_PIN 4
    bool flashState = LOW;

    //Checks for new messages every 1 second.
    int botRequestDelay = 1000;
    unsigned long lastTimeBotRan;

    //CAMERA_MODEL_AI_THINKER
    #define PWDN_GPIO_NUM 32
    #define RESET_GPIO_NUM -1
    #define XCLK_GPIO_NUM 0
    #define SIOD_GPIO_NUM 26
    #define SIOC_GPIO_NUM 27

    #define Y9_GPIO_NUM 35
    #define Y8_GPIO_NUM 34
    #define Y7_GPIO_NUM 39
    #define Y6_GPIO_NUM 36
    #define Y5_GPIO_NUM 21
    #define Y4_GPIO_NUM 19
    #define Y3_GPIO_NUM 18
    #define Y2_GPIO_NUM 5
    #define VSYNC_GPIO_NUM 25
    #define HREF_GPIO_NUM 23
    #define PCLK_GPIO_NUM 22

    void configInitCamera(){
    camera_config_t config;
    config.ledc_channel = LEDC_CHANNEL_0;
    config.ledc_timer = LEDC_TIMER_0;
    config.pin_d0 = Y2_GPIO_NUM;
    config.pin_d1 = Y3_GPIO_NUM;
    config.pin_d2 = Y4_GPIO_NUM;
    config.pin_d3 = Y5_GPIO_NUM;
    config.pin_d4 = Y6_GPIO_NUM;
    config.pin_d5 = Y7_GPIO_NUM;
    config.pin_d6 = Y8_GPIO_NUM;
    config.pin_d7 = Y9_GPIO_NUM;
    config.pin_xclk = XCLK_GPIO_NUM;
    config.pin_pclk = PCLK_GPIO_NUM;
    config.pin_vsync = VSYNC_GPIO_NUM;
    config.pin_href = HREF_GPIO_NUM;
    config.pin_sscb_sda = SIOD_GPIO_NUM;
    config.pin_sscb_scl = SIOC_GPIO_NUM;
    config.pin_pwdn = PWDN_GPIO_NUM;
    config.pin_reset = RESET_GPIO_NUM;
    config.xclk_freq_hz = 20000000;
    config.pixel_format = PIXFORMAT_JPEG;

    //init with high specs to pre-allocate larger buffers
    if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10; //0-63 lower number means higher quality
    config.fb_count = 2;
    } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12; //0-63 lower number means higher quality
    config.fb_count = 1;
    }

    // camera init
    esp_err_t err = esp_camera_init(&config);
    if (err != ESP_OK) {
    Serial.printf(“Camera init failed with error 0x%x”, err);
    delay(1000);
    ESP.restart();
    }

    // Drop down frame size for higher initial frame rate
    sensor_t * s = esp_camera_sensor_get();
    s->set_framesize(s, FRAMESIZE_CIF); // UXGA|SXGA|XGA|SVGA|VGA|CIF|QVGA|HQVGA|QQVGA
    }

    void handleNewMessages(int numNewMessages) {
    Serial.print(“Handle New Messages: “);
    Serial.println(numNewMessages);

    for (int i = 0; i len;
    uint16_t extraLen = head.length() + tail.length();
    uint16_t totalLen = imageLen + extraLen;

    clientTCP.println(“POST /bot”+BOTtoken+”/sendPhoto HTTP/1.1”);
    clientTCP.println(“Host: ” + String(myDomain));
    clientTCP.println(“Content-Length: ” + String(totalLen));
    clientTCP.println(“Content-Type: multipart/form-data; boundary=RandomNerdTutorials”);
    clientTCP.println();
    clientTCP.print(head);

    uint8_t *fbBuf = fb->buf;
    size_t fbLen = fb->len;
    for (size_t n=0;n<fbLen;n=n+1024) {
    if (n+10240) {
    size_t remainder = fbLen%1024;
    clientTCP.write(fbBuf, remainder);
    }
    }

    clientTCP.print(tail);

    esp_camera_fb_return(fb);

    int waitTime = 10000; // timeout 10 seconds
    long startTimer = millis();
    boolean state = false;

    while ((startTimer + waitTime) > millis()){
    Serial.print(“.”);
    delay(100);
    while (clientTCP.available()) {
    char c = clientTCP.read();
    if (state==true) getBody += String(c);
    if (c == ‘\n’) {
    if (getAll.length()==0) state=true;
    getAll = “”;
    }
    else if (c != ‘\r’)
    getAll += String(c);
    startTimer = millis();
    }
    if (getBody.length()>0) break;
    }
    clientTCP.stop();
    Serial.println(getBody);
    }
    else {
    getBody=”Connected to api.telegram.org failed.”;
    Serial.println(“Connected to api.telegram.org failed.”);
    }
    return getBody;
    }

    void setup(){
    WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
    // Init Serial Monitor
    Serial.begin(115200);

    // Set LED Flash as output
    pinMode(FLASH_LED_PIN, OUTPUT);
    digitalWrite(FLASH_LED_PIN, flashState);

    // Config and init the camera
    configInitCamera();

    // Connect to Wi-Fi
    WiFi.mode(WIFI_STA);
    Serial.println();
    Serial.print(“Connecting to “);
    Serial.println(ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    Serial.print(“.”);
    delay(500);
    }
    Serial.println();
    Serial.print(“ESP32-CAM IP Address: “);
    Serial.println(WiFi.localIP());
    }

    void loop() {
    if (sendPhoto) {
    Serial.println(“Preparing photo”);
    sendPhotoTelegram();
    sendPhoto = false;
    }
    if (millis() > lastTimeBotRan + botRequestDelay) {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    while (numNewMessages) {
    Serial.println(“got response”);
    handleNewMessages(numNewMessages);
    numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }
    lastTimeBotRan = millis();
    }
    }

    1. Avatar for zeus zeus گفت:

      فکر کنم احتمالا تا الان دیگه مشکل رو خودتون حل کرده باشید :/

  5. Avatar for امیرحسین امیرحسین گفت:

    سلام وقت بخیر
    من می خواهم داخل تابع loop به کاربر پیغام ارسال کنم ولی امکان پذیر نیست لطفا راهنمایی کنید

  6. Avatar for مبین آقاشاهی مبین آقاشاهی گفت:

    سلام بر شما.
    اگر بخواهیم از طریق اینترنت و از طریق همین سرور دیواس خودمون رو کنترل کنیم باید چیکار کنیم؟ با کمی تغییر در کد php و سمت سرور این کار شدنیه؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام
      ببخشید منظورتون رو درست متوجه نشدم
      ولی هر چیزی با تغییر کد امکان پذیر هست :دی

  7. Avatar for درخت درخت گفت:

    با سلام و تشکر از مطالب ارزنده سایتتون. اگه امکانش هست همین آموزش رو برای پیام رسانهای وطنی هم بذارید.با تشکر

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز خواهش میکنم
      برای پیام رسان های داخلی محدویتی وجود نداره – سعی میکنیم مطلبی در این خصوص آماده کنیم

  8. Avatar for درخت درخت گفت:

    با سلام و تشکر از مطالب ارزنده شما. امکانش هست همین پروژه رو برای پیام رسان های وطنی هم بذارید ؟

  9. Avatar for بینام بینام گفت:

    سلام
    کدوم کتابخوبه رو باید تغییر داد؟؟؟ZeusTgBot.cpp or ZeusTgBot.h و کدام خط را؟؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      توی فایل main سمپل هست
      و متغییر های لازم که باید تغییر کنن توی اون تعریف شدن.

  10. Avatar for محمد محمد گفت:

    درود
    اگر واسه ارتباط iot بجای استفاده از ربات تلگرام تو یه پروژه از mqtt استفاده بشه چه تفاوت هایی خواهد داشت ؟
    یعنی تفاوت استفاده از ربات تلگرام و mqtt چی هستش؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      mqtt یکی از پروتکل هایی هست که الانم زیاد داره استفاده میشه
      اما شما برای mqtt لازمه که احتمالا برنامه اختصاصی خودتون رو بنوسید ولی استفاده از ربات توی یک پیام رسان خیلی کار رو از بابت دم دست بودن راحت میکنه – اگر نه mqtt اصلا برای این منظور طراحی شده و قبلا توی سیسوگ در موردش مقاله هم نوشتیم توی سایت
      خیلی هم سبک تره

      1. Avatar for محمد محمد گفت:

        خب درسته ارتباط با تلگرام آسونتره نسبت به mqtt ولی الان با توجه به فیلتر بودن تلگرام و استفاده از هاست اختصاصی به عنوان یه روش برای دور زدن فیلتر که باز دردسر و هزینه خودش رو داره بهترین راه همون mqtt و یه بروکر مثل hivemq واسه یه ارتباط iot هستش

        1. Avatar for زئوس Zeus زئوس Zeus گفت:

          خوب البته که اگر بتونید یه نرم افزار اندورید اختصاصی با نیاز خودتون پیاده سازی کنید (که البته هزینه اش کم هم نیست) قطعا پروتکل های سبک مثل mqtt و امثالهم بهترین انتخاب هستن !
          البته اگر بخواید حرفه ای کار کنید نباید سراغ بروکر های رایگان بردید و بهتره که بروکر خودتون رو راه اندازی کنید !

  11. Avatar for سجاد گلچین پور سجاد گلچین پور گفت:

    زئوس جان راجب امنیت backend این پروژه هم یه بحثی میکنید؟ مثلا حملات DDoS روی سرور یا اسنیف کردن اطلاعات

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام به نکته خیلی خوبی اشاره کردید- لازمه اشاره کنم که این یه مثال خیلی ساده است نکات امنیتی توش دیده نشده ولی کارهایی که میشه کرد برای امنیت زیادن مثلا انکریپت کرد اطلاعات ارسالی رو با یه الگرویتم امن نظیر aes
      یا مثلا اضافه کردن یک فیلد توی پست دیتا ها که هر درخواست دهنده ای نتونه از سرویس شما استفاده کنه و امثالهم ….

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *