כיצד לשלב CoAP עבור מכשירי IoT ביישומים ניידים

האם מכשירי ה-IoT שלכם משדרים נתונים, אך פרוטוקולים סטנדרטיים כבדים מדי עבורם? אנו משלבים את פרוטוקול CoAP באפליקציות מובייל, ומבטיחים העברת נתונים קלה ואמינה גם עם החיישנים המוגבלים ביותר. הצוות שלנו מספק את הפרויקט במפתח מלא—מתכנון ועד יישום ותמיכה שוטפת.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
כיצד לשלב CoAP עבור מכשירי IoT ביישומים ניידים
מורכב
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

תארו לעצמכם: מאה חיישני טמפרטורה במחסן, כל אחד עם 10 KB RAM, שולחים נתונים לטאבלט הנייד של טכנאי. HTTP כבד מדי, MQTT דורש broker. הפתרון הוא CoAP (פרוטוקול יישומים מוגבל, המתואר ב-RFC 7252). כמפתחי מובייל, אנו נתקלים לעתים קרובות באינטגרציה של פרוטוקול כזה. הסמנטיקה של CoAP זהה: GET, POST, PUT, DELETE, קודי תגובה (2.05 Content = 200, 4.04 Not Found = 404). אבל הוא רץ מעל UDP, תופס עשרות בתים במקום מאות, ומיועד למכשירים עם 10 KB RAM וסוללה. אפליקציית מובייל המתקשרת ישירות עם מכשירים כאלה או דרך proxy של CoAP היא תרחיש נישתי אך הולך וגדל: רשתות Thread (Matter), חיישנים תעשייתיים, מכשירים רפואיים לבישים. אינטגרציית CoAP באפליקציות מובייל היא נישה צומחת. תקשורת CoAP IoT אידיאלית למכשירים מוגבלים.

כיצד CoAP פותר אמינות מעל UDP

CoAP מגדיר שני סוגי הודעות:

  • CON (Confirmable) – השולח ממתין ל-ACK. במקרה של timeout, backoff אקספוננציאלי וניסיון חוזר (ברירת מחדל: 2 ניסיונות, מרווח של 2–32 שניות). מקביל להבטחות TCP.
  • NON (Non-confirmable) – fire and forget. לטלמטריה בתדירות גבוהה.

כל הודעת CON נושאת מזהה הודעה (2 בתים) למניעת כפילויות — המקלט שומר את המזהים האחרונים שטופלו ומתעלם מכפילויות. זמן החיים של המטמון הוא EXCHANGE_LIFETIME (247 שניות לפי RFC). בעבודה דרך NAT מהמובייל לרשת IoT, שימו לב שהקשרים של NAT גם הם פגים (~30 שניות עבור UDP דרך NAT של ספקים רבים). מנגנון בקרת הגודש של CoAP מיישם backoff אקספוננציאלי עם גורם אקראי, בהתאם לערכים המומלצים ב-RFC 7252.

מה זה Observe ואיך ליישם אותו במובייל?

RFC 7641 מוסיף את אפשרות Observe — אנלוגיה למנוי WebSocket עבור CoAP. הלקוח שולח DtlsConnectorConfig config = new DtlsConnectorConfig.Builder() .setPskStore(new StaticPskStore("device-id", pskBytes)) .build(); DTLSConnector connector = new DTLSConnector(config); CoapEndpoint endpoint = new CoapEndpoint.Builder() .setConnector(connector).build(); CoapClient client = new CoapClient("coaps://192.168.1.100/sensor/temperature"); client.setEndpoint(endpoint); עם Observe: 0 (הרשמה). השרת שולח את הערך הנוכחי ולאחר מכן התראות על כל שינוי. Observe: 1 מבטל את ההרשמה. תכונת ה-Observe של CoAP מאפשרת push מהשרת, ומפחיתה את תעבורת הרשת בעד 90% בהשוואה לבדיקה כל 5 שניות.

זהו מפתח ללקוחות IoT במובייל: במקום לבדוק כל 5 שניות, בקשה אחת בודדת מפעילה push מהשרת. האזהרה: לפי RFC, השרת שומר רשימה של צופים. כאשר כתובת ה-IP של הלקוח משתנה (נתונים סלולריים, Wi-Fi → 4G), השרת אינו מודע לכך — יש לרשום מחדש את ה-Observe מהכתובת החדשה. בפועל, בכל שינוי רשת (שמתגלה דרך ConnectivityManager.NetworkCallback באנדרואיד, NWPathMonitor ב-iOS), אנו שולחים מחדש את כל בקשות ה-Observe הפעילות.

DTLS: אבטחה מעל UDP

CoAP ללא הצפנה אינו בטוח לשימוש בייצור. DTLS (Datagram TLS, RFC 6347) הוא האנלוגיה ל-TLS עבור UDP. ה-handshake כבד יותר מאשר TCP TLS (4–6 RTT לעומת 1–2 עבור TLS 1.3), מה שקריטי למכשירים עם מעבדים איטיים. אבטחת DTLS CoAP חיונית לייצור.

פרופילי אבטחה של CoAP:

  • NoSec – ללא הצפנה. רק לרשתות מבודדות.
  • PreSharedKey (PSK) – מפתח סימטרי המוטמע במכשיר במפעל. הנפוץ ביותר בתרחישים תעשייתיים.
  • RawPublicKey – ללא תשתית PKI, אך עם מפתחות ציבוריים.
  • Certificate – PKI מלא. נדיר במכשירים מוגבלים.

עבור לקוח מובייל המתחבר למכשירי PSK: שמרו את מפתחות ה-PSK בצורה מאובטחת (Keychain / EncryptedSharedPreferences) ויישמו handshake של DTLS באמצעות ספרייה עם תמיכה ב-PSK.

CoAP לעומת MQTT: מה לבחור ל-IoT?

CoAP מנצח את MQTT בגודל ההודעה (קטן פי 2-3) ואינו דורש broker, אך מפסיד באספקה מובטחת ותמיכה בתורים מורכבים. ספציפית, כותרת CoAP היא רק 4 בתים, שזה קטן פי 8 מכותרת HTTP ופי 3 מכותרת המינימום של MQTT. עבור תרחישי "sensor-app" עם בקשות לא תכופות, CoAP יעיל יותר; עבור זרמי נתונים קבועים עם נקודות קצה רבות, MQTT עדיף.

ספריות לקוח לפלטפורמות מובייל

ספריות CoAP למובייל הן משמעותית פחות מ-MQTT. אפשרויות אמיתיות:

פלטפורמה ספרייה DTLS Observe
אנדרואיד Californium (Eclipse) + (דרך Scandium) +
iOS libcoap (C, דרך FFI) + +
Flutter coap (pub.dev) חלקי +
React Native אין מוכן — —

עבור React Native, הדרך היחידה האפשרית היא מודול native (Californium באנדרואיד, libcoap ב-iOS דרך גשר Objective-C) או proxy של CoAP ל-HTTP בקצה האחורי.

Californium (org.eclipse.californium:californium-core) הוא היישום הבוגר ביותר. ספריית ה-CoAP הבוגרת ביותר לאנדרואיד היא Californium. Observe דרך CoapClient.observe() עם CoapHandler. DTLS דרך הארטיפקט הנפרד Scandium. דוגמה לאתחול חיבור PSK:

DtlsConnectorConfig config = new DtlsConnectorConfig.Builder()
        .setPskStore(new StaticPskStore("device-id", pskBytes))
        .build();
DTLSConnector connector = new DTLSConnector(config);
CoapEndpoint endpoint = new CoapEndpoint.Builder()
        .setConnector(connector)
        .build();
CoapClient client = new CoapClient("coaps://192.168.1.100/sensor/temperature");
client.setEndpoint(endpoint);

עבור iOS, libcoap מורכב דרך CocoaPods עם podspec מותאם או דרך SPM כיעד בינארי (דורש בנייה מחדש עבור arm64/x86_64). עבור אינטגרציית CoAP ב-iOS, אנו משתמשים ב-libcoap דרך FFI. זו לא משימה של 15 דקות.

CoAP דרך proxy: כשהתקשורת הישירה אינה נדרשת

אם המכשירים נמצאים ברשת IoT מבודדת והלקוח הנייד חייב לתקשר דרך האינטרנט, proxy של CoAP ל-HTTP (או proxy של CoAP ל-MQTT) מסיר את המורכבות מהצד הנייד. Eclipse Hono, AWS IoT Core עם נקודת קצה CoAP, או proxy של Californium באירוח עצמי. הלקוח הנייד עובד דרך HTTPS/WebSocket רגיל, וה-proxy מתרגם ל-CoAP. אנו מאבדים Observe ישיר (נדרשת אמולציה דרך SSE או WebSocket ברמת ה-proxy) אך מרוויחים פשטות ואמינות TCP בצד הלקוח.

פרטי יישום של handshake DTLS בשימוש ב-PSK, ה-handshake מורכב מ-4 שלבים: ClientHello, ServerHello (עם זהות PSK), ChangeCipherSpec, Finished. במכשירים מוגבלים, זה יכול לקחת עד 2 שניות. אנו ממליצים על שמירת סשן DTLS במטמון (מזהה סשן או כרטיס סשן) לחיבורים חוזרים.

מה כלול בעבודה שלנו

  • פיתוח פרוטוקול החילופין (מודל משאבים, פורמטים של payload).
  • יישום Observe בצד הנייד עם טיפול בשינויי רשת.
  • הגדרת DTLS (PSK או אישורים) ואינטגרציה עם Keychain/EncryptedSharedPreferences.
  • בדיקות על מכשירים אמיתיים ואמולטורי רשת.
  • תיעוד אינטגרציה (דיאגרמות, דוגמאות בקשות).
  • ייעוץ לגבי בחירות תשתית (proxy או ללא proxy).
  • עלות פרויקט טיפוסית נעה בין $15,000 ל-$30,000 בהתאם למורכבות ולכיסוי הפלטפורמות.

אנו צוות של מפתחי מובייל עם ניסיון של 10+ שנים ו-40+ פרויקטים ב-IoT. אם יש לכם משימה דומה, צרו קשר — נבחן את המורכבות ונציע ארכיטקטורה לתרחיש שלכם.

הערכה ולוחות זמנים

אינטגרציית CoAP היא משימה לא סטנדרטית. לוחות הזמנים תלויים בתרחיש: אם דרך proxy — 2–3 שבועות. CoAP ישיר עם DTLS בפלטפורמות native — 4–8 שבועות, כולל הגדרת Californium/libcoap, handshake של DTLS ו-Observe. אנו תמיד בודקים את פרופיל האבטחה של המכשיר ואת תשתית הרשת הזמינה לפני הערכה.