CINXE.COM

Secure communication over TLS protocol using Mosquito Broker

<!DOCTYPE html> <html lang="en-US"> <head > <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta property="fb:admins" content="1140409510" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta property="fb:admins" content="107031532675062" /> <meta name="msvalidate.01" content="40BA1B879066C83CDFCA374CA4B490C3" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO Premium plugin v18.5 (Yoast SEO v23.9) - https://yoast.com/wordpress/plugins/seo/ --> <title>Secure communication over TLS protocol using Mosquito Broker</title> <meta name="description" content="In this tutorial, Client-Server communication will be setup using TLS Protocol so that data can be securely exchanged between them." /> <link rel="canonical" href="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42" /> <meta property="og:description" content="In this tutorial, Client-Server communication will be setup using TLS Protocol so that data can be securely exchanged between them." /> <meta property="og:url" content="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" /> <meta property="og:site_name" content="Engineers Garage" /> <meta property="article:publisher" content="https://www.facebook.com/engineersgarage" /> <meta property="og:image" content="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg" /> <meta property="og:image:width" content="588" /> <meta property="og:image:height" content="242" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="Priya" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:creator" content="@EngineersGarage" /> <meta name="twitter:site" content="@EngineersGarage" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Priya" /> <meta name="twitter:label2" content="Est. reading time" /> <meta name="twitter:data2" content="10 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#article","isPartOf":{"@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/"},"author":{"name":"Priya","@id":"https://www.engineersgarage.com/#/schema/person/1ce34f4b7e2a5197ba3423a638549ce6"},"headline":"Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42","datePublished":"2024-11-20T11:07:07+00:00","dateModified":"2024-11-22T09:51:27+00:00","mainEntityOfPage":{"@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/"},"wordCount":1416,"commentCount":0,"publisher":{"@id":"https://www.engineersgarage.com/#organization"},"image":{"@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#primaryimage"},"thumbnailUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg","articleSection":["Featured Contributions","IoT tutorials","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#respond"]}]},{"@type":"WebPage","@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/","url":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/","name":"Secure communication over TLS protocol using Mosquito Broker","isPartOf":{"@id":"https://www.engineersgarage.com/#website"},"primaryImageOfPage":{"@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#primaryimage"},"image":{"@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#primaryimage"},"thumbnailUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg","datePublished":"2024-11-20T11:07:07+00:00","dateModified":"2024-11-22T09:51:27+00:00","description":"In this tutorial, Client-Server communication will be setup using TLS Protocol so that data can be securely exchanged between them.","breadcrumb":{"@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#primaryimage","url":"https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg","contentUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg","width":588,"height":242,"caption":""},{"@type":"BreadcrumbList","@id":"https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.engineersgarage.com/"},{"@type":"ListItem","position":2,"name":"Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42"}]},{"@type":"WebSite","@id":"https://www.engineersgarage.com/#website","url":"https://www.engineersgarage.com/","name":"Engineers Garage","description":"Electronic Projects, Electrical Engineering Resources, Makers Articles and Product News","publisher":{"@id":"https://www.engineersgarage.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.engineersgarage.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://www.engineersgarage.com/#organization","name":"Engineer's Garage - WTWH Media","url":"https://www.engineersgarage.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.engineersgarage.com/#/schema/logo/image/","url":"https://www.engineersgarage.com/wp-content/uploads/2019/08/EGlogo.png","contentUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/08/EGlogo.png","width":372,"height":52,"caption":"Engineer's Garage - WTWH Media"},"image":{"@id":"https://www.engineersgarage.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/engineersgarage","https://x.com/EngineersGarage","https://www.youtube.com/channel/UC0VITh11JSYk-UW7toLebUw"]},{"@type":"Person","@id":"https://www.engineersgarage.com/#/schema/person/1ce34f4b7e2a5197ba3423a638549ce6","name":"Priya","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.engineersgarage.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/e5bf550a6252cc0310b8d7a2bf7c722c?s=96&r=g","contentUrl":"https://secure.gravatar.com/avatar/e5bf550a6252cc0310b8d7a2bf7c722c?s=96&r=g","caption":"Priya"},"url":"https://www.engineersgarage.com/author/priya/"}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//static.addtoany.com' /> <link rel='dns-prefetch' href='//kit.fontawesome.com' /> <link rel="alternate" type="application/rss+xml" title="Engineers Garage &raquo; Feed" href="https://www.engineersgarage.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Engineers Garage &raquo; Comments Feed" href="https://www.engineersgarage.com/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Engineers Garage &raquo; Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42 Comments Feed" href="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.engineersgarage.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='genesis-blocks-style-css-css' href='https://www.engineersgarage.com/wp-content/plugins/genesis-blocks/dist/style-blocks.build.css?ver=1720775798' type='text/css' media='all' /> <link rel='stylesheet' id='genesis-simple-share-plugin-css-css' href='https://www.engineersgarage.com/wp-content/plugins/genesis-simple-share/assets/css/share.min.css?ver=0.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='genesis-simple-share-genericons-css-css' href='https://www.engineersgarage.com/wp-content/plugins/genesis-simple-share/assets/css/genericons.min.css?ver=0.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='theme-wtwh-amplifying-css' href='https://www.engineersgarage.com/wp-content/themes/ThemeWTWHv2/style.css?ver=1705628983' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.engineersgarage.com/wp-includes/css/dist/block-library/style.min.css?ver=6.7' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wtwh_prestitial_main_style-css' href='https://www.engineersgarage.com/wp-content/plugins/prestitial/assets/css/main.css?ver=1.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='wtwh_prestitial_style-css' href='https://www.engineersgarage.com/wp-content/plugins/prestitial/assets/css/prestitial.css?ver=1.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='megamenu-css' href='https://www.engineersgarage.com/wp-content/uploads/maxmegamenu/style.css?ver=44ec18' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://www.engineersgarage.com/wp-includes/css/dashicons.min.css?ver=6.7' type='text/css' media='all' /> <link rel='stylesheet' id='ea-style-css' href='https://www.engineersgarage.com/wp-content/themes/ThemeWTWHv2/assets/css/main.css?ver=1705628983' type='text/css' media='all' /> <link rel='stylesheet' id='simple-social-icons-font-css' href='https://www.engineersgarage.com/wp-content/plugins/simple-social-icons/css/style.css?ver=3.0.2' type='text/css' media='all' /> <link rel='stylesheet' id='tablepress-default-css' href='https://www.engineersgarage.com/wp-content/plugins/tablepress/css/build/default.css?ver=2.4.4' type='text/css' media='all' /> <link rel='stylesheet' id='addtoany-css' href='https://www.engineersgarage.com/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.16' type='text/css' media='all' /> <link rel='stylesheet' id='genesis-tabs-stylesheet-css' href='https://www.engineersgarage.com/wp-content/plugins/genesis-tabs/assets/css/style.css?ver=0.9.5' type='text/css' media='all' /> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/genesis-simple-share/assets/js/sharrre/jquery.sharrre.min.js?ver=0.1.0" id="genesis-simple-share-plugin-js-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/genesis-simple-share/assets/js/waypoints.min.js?ver=0.1.0" id="genesis-simple-share-waypoint-js-js"></script> <script type="text/javascript" id="addtoany-core-js-before"> /* <![CDATA[ */ window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={}; a2a_config.track_links = 'bitly'; a2a_config.track_links_key = 'addtoany|R_cc6a4017b0274d1d86f2397771b70136'; // username|API key delimited by | a2a_config.templates = { twitter: "${title} ${link} via @EngineersGarage" }; /* ]]> */ </script> <script type="text/javascript" defer src="https://static.addtoany.com/menu/page.js" id="addtoany-core-js"></script> <script type="text/javascript" defer src="https://www.engineersgarage.com/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1" id="addtoany-jquery-js"></script> <script type="text/javascript" src="https://kit.fontawesome.com/0db18eb627.js?ver=6.7" id="wtwh_prestitial_fontAwesome_js-js"></script> <link rel="https://api.w.org/" href="https://www.engineersgarage.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.engineersgarage.com/wp-json/wp/v2/posts/14502" /><link rel='shortlink' href='https://www.engineersgarage.com/?p=14502' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.engineersgarage.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.engineersgarage.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F&#038;format=xml" /> <!-- www.engineersgarage.com=14502 --> <script> var contentHash = '6074682d6ac17450a215ff5388161381'; var cat_target='6074682d6ac17450a215ff5388161381, featured-contributions, iot-tutorials, tutorials, ros'; </script> <style> #category-posts-2-internal ul {padding: 0;} #category-posts-2-internal .cat-post-item img {max-width: initial; max-height: initial; margin: initial;} #category-posts-2-internal .cat-post-author {margin-bottom: 0;} #category-posts-2-internal .cat-post-thumbnail {margin: 5px 10px 5px 0;} #category-posts-2-internal .cat-post-item:before {content: ""; clear: both;} #category-posts-2-internal .cat-post-excerpt-more {display: inline-block;} #category-posts-2-internal .cat-post-item {list-style: none; margin: 3px 0 10px; padding: 3px 0;} #category-posts-2-internal .cat-post-current .cat-post-title {font-weight: bold; text-transform: uppercase;} #category-posts-2-internal [class*=cat-post-tax] {font-size: 0.85em;} #category-posts-2-internal [class*=cat-post-tax] * {display:inline-block;} #category-posts-2-internal .cat-post-item:after {content: ""; display: table; clear: both;} #category-posts-2-internal .cat-post-item .cat-post-title {overflow: hidden;text-overflow: ellipsis;white-space: initial;display: -webkit-box;-webkit-line-clamp: 4;-webkit-box-orient: vertical;padding-bottom: 0 !important;} #category-posts-2-internal .cat-post-item:after {content: ""; display: table; clear: both;} #category-posts-2-internal .cat-post-thumbnail {display:block; float:left; margin:5px 10px 5px 0;} #category-posts-2-internal .cat-post-crop {overflow:hidden;display:block;} #category-posts-2-internal p {margin:5px 0 0 0} #category-posts-2-internal li > div {margin:5px 0 0 0; clear:both;} #category-posts-2-internal .dashicons {vertical-align:middle;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop img {height: 95px;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop img {width: 150px;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop img {object-fit: cover; max-width: 100%; display: block;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop-not-supported img {width: 100%;} #category-posts-2-internal .cat-post-thumbnail {max-width:100%;} #category-posts-2-internal .cat-post-item img {margin: initial;} #category-posts-2-internal .cat-post-dark img {padding-bottom: 0 !important; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; -ms-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease;} #category-posts-2-internal .cat-post-dark:hover img {-webkit-filter: brightness(75%); -moz-filter: brightness(75%); -ms-filter: brightness(75%); -o-filter: brightness(75%); filter: brightness(75%);} </style> <!-- Google Tag Manager for Global Container--> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MMC9PJ9');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NJMRR6Z');</script> <!-- End Google Tag Manager --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { var pathParts = window.location.pathname.substr(1).split('/'); var mapHeader = googletag.sizeMapping() .addSize([768, 200], [728, 90]) .addSize([0, 0], [300, 250]) .build(); var mapLargeHeader = googletag.sizeMapping() .addSize([1024, 200], [[970, 90], [970, 250]]) .addSize([0, 0], [300, 250]) .build(); var mapWallpaper = googletag.sizeMapping() .addSize([1024, 500], [[1, 1]]) .addSize([0, 0], [[1, 1]]) .build(); var gptSlots = []; gptSlots[0] = googletag.defineSlot('/5272491/ee_network/eg_header', [[300, 250], [728, 90]], 'div-gpt-eg-header') .defineSizeMapping(mapHeader) .addService(googletag.pubads()); gptSlots[1] = googletag.defineSlot('/5272491/ee_network/eg_largeleader', [[970, 90], [970, 250]], 'div-gpt-eg_largeleader') .defineSizeMapping(mapLargeHeader) .addService(googletag.pubads()); gptSlots[2] = googletag.defineSlot('/5272491/ee_network/eg_wallpaper', [[1, 1]], 'div-gpt-eg_wallpaper') .defineSizeMapping(mapWallpaper) .addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebar1', [[300, 250], [300, 600]], 'div-gpt-eg_sidebar1').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebarbottom', [[300, 250], [300, 600]], 'div-gpt-eg_sidebarbottom').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_storeribbon',[[970, 250]], 'div-gpt-eg_storeribbon').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.pubads().setTargeting('articletitle', pathParts[0] ? pathParts[0]: 'home-page').setTargeting('cat_target', [cat_target]); googletag.enableServices(); }); </script> <!-- Google Tag Manager for Global Container--> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MMC9PJ9');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NJMRR6Z');</script> <!-- End Google Tag Manager --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { var pathParts = window.location.pathname.substr(1).split('/'); var mapHeader = googletag.sizeMapping() .addSize([768, 200], [728, 90]) .addSize([0, 0], [300, 250]) .build(); var mapLargeHeader = googletag.sizeMapping() .addSize([1024, 200], [[970, 90], [970, 250]]) .addSize([0, 0], [300, 250]) .build(); var mapWallpaper = googletag.sizeMapping() .addSize([1024, 500], [[1, 1]]) .addSize([0, 0], [[1, 1]]) .build(); var gptSlots = []; gptSlots[0] = googletag.defineSlot('/5272491/ee_network/eg_header', [[300, 250], [728, 90]], 'div-gpt-eg-header') .defineSizeMapping(mapHeader) .addService(googletag.pubads()); gptSlots[1] = googletag.defineSlot('/5272491/ee_network/eg_largeleader', [[970, 90], [970, 250]], 'div-gpt-eg_largeleader') .defineSizeMapping(mapLargeHeader) .addService(googletag.pubads()); gptSlots[2] = googletag.defineSlot('/5272491/ee_network/eg_wallpaper', [[1, 1]], 'div-gpt-eg_wallpaper') .defineSizeMapping(mapWallpaper) .addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_allstreamflex', [[1, 1]], 'div-gpt-eg_allstreamflex').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_allstreamprelude', [[1, 1]], 'div-gpt-eg_allstreamprelude').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebar1', [[300, 250], [300, 600]], 'div-gpt-eg_sidebar1').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebarbottom', [[300, 250], [300, 600]], 'div-gpt-eg_sidebarbottom').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_storeribbon',[[970, 250]], 'div-gpt-eg_storeribbon').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.pubads().setTargeting('articletitle', pathParts[0] ? pathParts[0]: 'home-page').setTargeting('cat_target', [cat_target]); googletag.enableServices(); }); </script><link rel="icon" href="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-270x270.png" /> <style type="text/css" id="wp-custom-css"> /*body > div.site-container > div.site-inner > div > div > main > article > div > p > a { color: #D2232A; }*/ .entry-content a { font-weight: bold; } .site-header .title-area { width: 350px; } @media only screen and (max-width: 1152px) { .site-header .title-area { width: 230px; } } .wtwhSpecial { display: none !important; } article > div > p > a { font-weight: bold; color:#337ab7; text-decoration: underline; } /*RSS FEED FIX*/ #rss-3 > div > h4 > a { font-size: 20px; font-weight: bold; float: none !important; } #rss-3 > div > h4 > a > img { display: none; } #rss-3 > div > ul { width: 100%; padding-left: 30px; } #rss-2 > div > h4 > a { font-size: 20px; font-weight: bold; float: none !important; } #rss-2 > div > h4 > a > img { display: none; } #rss-2 > div > ul { width: 100%; padding-left: 30px; } #recent-posts-2 > .widget-wrap > ul { padding-left: 30px; } .video-carousel .video-popup:before { background: none !important; } .video-carousel .video-popup:after { color: red !important; } .entry-categories a { font-weight: normal;} .entry-tags a{font-weight: normal;} .entry-categories { font-weight: bold;} .entry-tags {font-weight: bold;} .bawmrp a { font-weight: 400; } #digital > span { font-size: 16px !important; font-weight: 400 !important; } xmp { white-space:normal; } .slick-slider .col-sm-4 .header-slide, .slick-slider .col-sm-4 .header-slide img { max-height:240px; object-fit:cover; } .slick-slider .col-sm-8 .header-slide, .slick-slider .col-sm-8 .header-slide img { object-fit:cover; max-height:500px; } /*EE Classrooms*/ .motion-design-guides { font-size: 18px; font-weight: bold; width: 270px; height: 60px; text-align: center; text-align-last: center; -moz-text-align-last: center; border-radius: 0px; background-color: #313131; color: white; border-bottom: 4px solid #1f427e; text-transform: uppercase; white-space: wrap; } .motion-design-guide-option { text-align: center; text-align-last: center; -moz-text-align-last: center; text-transform: uppercase; width: 270px; white-space: wrap; } /*Fix for Categories/home page article display*/ @media only screen and (max-width: 500px) { .content .entry .entry-header, .archive-entry .entry-header { /* width: 100% !important;*/ /*padding-left: 0px !important; float: none !important;*/ } /* .content .entry .entry-content { width: 100% !important; }*/ /* .entry-content p { float: none !important; }*/ .entry-content img { text-align: center !important; width: 100% !important; } .archive-entry { display: flex; flex-direction: column-reverse; width: 100% !important; } .archive-entry > .entry-header, .archive-entry .entry-content { width: 100% !important; } /*.archive-entry .entry-image-link img { width: 100% !important; }*/ } @media only screen and (max-width: 767px) { .archive.category .entry-content p { display: none !important } .blog .entry-content p { display: none !important; } } .slick-slider.header-slides .header-slide .overlay h4, .slick-slider.header-slides .header-slide .overlay h2 { text-shadow: 2px 2px 5px black; background: none !important; -webkit-text-stroke-width: 0px !important; -webkit-text-stroke-color: transparent !important; } .nav-previous{ float:left; margin-bottom:50px } .nav-next{ float:right; margin-bottom:50px } .dropbtn { background-color: #04AA6D; color: white; padding: 16px; font-size: 16px; border: none; } .dropdown { display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f1f1f1; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .dropdown-content a:hover {background-color: #ddd;} .dropdown:hover .dropdown-content {display: block;} .dropdown:hover .dropbtn {background-color: #3e8e41;} /*Design Guide Drop Down Menu*/ .motion-design-guides { font-size: 14px; font-family: Raleway, sans-serif; width: 270px; height: 50px; text-align: center; text-align-last: center; -moz-text-align-last: center; border-radius: 0px; background-color: white; color: #000; border-top: 3px solid #000; border-left: none; border-right: none; border-bottom: 1px solid #e3e3e3; text-transform: uppercase; white-space: wrap; } .motion-design-guide-option { text-align: center; text-align-last: center; -moz-text-align-last: center; text-transform: uppercase; width: 270px; white-space: wrap; } .motion-design-guides:after { content: ""; border: solid #000; border-width: 0 2px 2px 0; margin-left: 20px; margin-bottom: 3px; display: inline-block; padding: 2.5px; transform: rotate(45deg); -webkit-transform: rotate(45deg); } /*Overlapping Header article Title fix*/ @media only screen and (max-width: 780px) { .site-container { margin-top: 40px !important; } } p.must-log-in a, p.logged-in-as a { color: #23527c !important; font-weight: bold; } article li a { color: #337ab7; text-decoration: underline; } /* Search Page */ body.search .site-inner { padding-left: unset; padding-right: unset; } @media only screen and (min-width: 988px) { .search .content { width: 66% !important; float: left; } .search .sidebar { width: 30%; float: right; } } </style> <style type="text/css">/** Mega Menu CSS: fs **/</style> </head> <body class="post-template-default single single-post postid-14502 single-format-standard mega-menu-primary header-image content-sidebar genesis-breadcrumbs-hidden"> <!-- xyzzy top --> <div id="prestitial" style="opacity: 0;"> <div id="prestitial-overlay"></div> <div id="prestitial-grid"> <div class="prestitial-logo"> <div class="title-area"> <h1 class="site-title"> <a href="#"><img src="https://www.engineersgarage.com/wp-content/uploads/2022/10/eg-logo.png"></a></h1> </div> </div> <div class="close-cta"> Continue to Site <i class="fa fa-arrow-right"></i> </div> <div id="prestitial-banner"></div> </div> </div> <!-- hides rest of content --> <div id="body-wrapper" style="opacity: 0;"> <div class="site-container"><header class="site-header"><div class="wrap"><div class="title-area"><p class="site-title"><a href="https://www.engineersgarage.com/">Engineers Garage</a></p></div><div class="widget-area header-widget-area"><section id="custom_html-2" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div id='div-gpt-eg-header'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg-header'); }); </script> </div> </div></div></section> </div><div class="mobile-toggles"><a href="#" class="search-toggle"><i class="icon-search"></i></a><a href="#" class="mobile-menu-toggle"><i class="icon-menu"></i></a></div></div></header><nav class="nav-primary" aria-label="Main"><div class="wrap"><div id="mega-menu-wrap-primary" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button" aria-expanded="false"> <span class="mega-toggle-animated-box"> <span class="mega-toggle-animated-inner"></span> </span> </button></div></div></div><ul id="mega-menu-primary" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="disabled" data-effect-speed-mobile="0" data-mobile-force-width="false" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="768" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical" data-hover-intent-timeout="300" data-hover-intent-interval="100"><li class='mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-61908' id='mega-menu-item-61908'><a class="mega-menu-link" href="https://www.engineersgarage.com/projects-and-tutorials/" aria-expanded="false" tabindex="0">Electronics Projects and Tutorials<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-has-children mega-menu-item-39808' id='mega-menu-item-39808'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/" aria-expanded="false">Electronic Projects<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-81272' id='mega-menu-item-81272'><a class="mega-menu-link" href="https://www.engineersgarage.com/arduino/">Arduino Projects</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-81273' id='mega-menu-item-81273'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/avr/">AVR</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80793' id='mega-menu-item-80793'><a class="mega-menu-link" href="https://www.engineersgarage.com/raspberry-pi-electronic-projects/">Raspberry pi</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78430' id='mega-menu-item-78430'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/esp8266-electronic-projects/">ESP8266</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78434' id='mega-menu-item-78434'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/beaglebone-electronic-projects/">BeagleBone</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80794' id='mega-menu-item-80794'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/8051-microcontroller/">8051 Microcontroller</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-55864' id='mega-menu-item-55864'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/arm-electronic-projects-electronic-projects/">ARM</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80795' id='mega-menu-item-80795'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/pic-microcontroller-electronic-projects/">PIC Microcontroller</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-60239' id='mega-menu-item-60239'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/stm32-electronic-projects-electronic-projects/">STM32</a></li> </ul> </li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-current-post-ancestor mega-current-menu-parent mega-current-post-parent mega-menu-item-has-children mega-menu-item-7268' id='mega-menu-item-7268'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/" aria-expanded="false">Tutorials<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78818' id='mega-menu-item-78818'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/audio-tutorials/">Audio Electronics</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78819' id='mega-menu-item-78819'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/battery-management-systems/">Battery Management</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78820' id='mega-menu-item-78820'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/brainwave/">Brainwave</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78833' id='mega-menu-item-78833'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/evs/">Electric Vehicles</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78822' id='mega-menu-item-78822'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/emc-emi/">EMI/EMC/RFI</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78823' id='mega-menu-item-78823'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/filters/">Hardware Filters</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-current-post-ancestor mega-current-menu-parent mega-current-post-parent mega-menu-item-78826' id='mega-menu-item-78826'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/iot-tutorials/">IoT tutorials</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80151' id='mega-menu-item-80151'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/power/">Power Tutorials</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78835' id='mega-menu-item-78835'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/python/">Python</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78829' id='mega-menu-item-78829'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/sensors-tutorials/">Sensors</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78830' id='mega-menu-item-78830'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/usb/">USB</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78832' id='mega-menu-item-78832'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/vhdl-tutorials/">VHDL</a></li> </ul> </li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-56096' id='mega-menu-item-56096'><a class="mega-menu-link" href="https://www.engineersgarage.com/circuit_design/">Circuit Design</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-62725' id='mega-menu-item-62725'><a target="_blank" class="mega-menu-link" href="https://www.youtube.com/user/engineersgarage">Project Videos</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-7269' id='mega-menu-item-7269'><a class="mega-menu-link" href="https://www.engineersgarage.com/components/">Components</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-39810' id='mega-menu-item-39810'><a class="mega-menu-link" href="https://www.engineersgarage.com/article_page/" aria-expanded="false" tabindex="0">Articles<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-63122' id='mega-menu-item-63122'><a class="mega-menu-link" href="https://www.engineersgarage.com/tech-articles/">Tech Articles</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-13371' id='mega-menu-item-13371'><a class="mega-menu-link" href="https://www.engineersgarage.com/insight/">Insight</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-13399' id='mega-menu-item-13399'><a class="mega-menu-link" href="https://www.engineersgarage.com/invention-stories/">Invention Stories</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-13326' id='mega-menu-item-13326'><a class="mega-menu-link" href="https://www.engineersgarage.com/how_to/">How to</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-59366' id='mega-menu-item-59366'><a class="mega-menu-link" href="https://www.engineersgarage.com/what_is/">What Is</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-1863' id='mega-menu-item-1863'><a class="mega-menu-link" href="#" aria-expanded="false" tabindex="0">News<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-39809' id='mega-menu-item-39809'><a class="mega-menu-link" href="https://www.engineersgarage.com/news/">Electronic Product News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-77696' id='mega-menu-item-77696'><a class="mega-menu-link" href="https://www.engineersgarage.com/news/business-news/">Business News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-77697' id='mega-menu-item-77697'><a class="mega-menu-link" href="https://www.engineersgarage.com/news/company-start-up-news/">Company/Start-up News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-14489' id='mega-menu-item-14489'><a class="mega-menu-link" href="https://www.engineersgarage.com/reviews/">DIY Reviews</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-14287' id='mega-menu-item-14287'><a class="mega-menu-link" href="https://www.engineersgarage.com/guest_post/">Guest Post</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-55871' id='mega-menu-item-55871'><a class="mega-menu-link" aria-expanded="false" tabindex="0">Forums<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55870' id='mega-menu-item-55870'><a class="mega-menu-link" href="https://www.edaboard.com/">EDABoard.com</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55869' id='mega-menu-item-55869'><a class="mega-menu-link" href="https://www.electro-tech-online.com/">Electro-Tech-Online</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-1851' id='mega-menu-item-1851'><a class="mega-menu-link" href="https://forums.engineersgarage.com/">EG Forum Archive</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-align-bottom-left mega-menu-megamenu mega-menu-item-1868' id='mega-menu-item-1868'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mk" aria-expanded="false" tabindex="0">DigiKey Store<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1869' id='mega-menu-item-1869'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9ml">Cables, Wires</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1870' id='mega-menu-item-1870'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mm">Connectors, Interconnect</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1871' id='mega-menu-item-1871'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mn">Discrete</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1872' id='mega-menu-item-1872'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mo">Electromechanical</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1873' id='mega-menu-item-1873'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mp">Embedded Computers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1874' id='mega-menu-item-1874'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mq">Enclosures, Hardware, Office</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1875' id='mega-menu-item-1875'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mr">Integrated Circuits (ICs)</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1876' id='mega-menu-item-1876'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9ms">Isolators</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1877' id='mega-menu-item-1877'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mt">LED/Optoelectronics</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1878' id='mega-menu-item-1878'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mu">Passive</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1879' id='mega-menu-item-1879'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mv">Power, Circuit Protection</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1880' id='mega-menu-item-1880'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mw">Programmers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1881' id='mega-menu-item-1881'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mx">RF, Wireless</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1882' id='mega-menu-item-1882'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mk">Semiconductors</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1883' id='mega-menu-item-1883'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9my">Sensors, Transducers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1884' id='mega-menu-item-1884'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mz">Test Products</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1885' id='mega-menu-item-1885'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mA">Tools</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-56062' id='mega-menu-item-56062'><a class="mega-menu-link" href="https://www.eeworldonline.com/learning-center" aria-expanded="false" tabindex="0">Learn<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-80114' id='mega-menu-item-80114'><a class="mega-menu-link" href="https://www.eeworldonline.com/category/tech-tips/">eBooks/Tech Tips</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-76567' id='mega-menu-item-76567'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/design-guide-library">Design Guides</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77221' id='mega-menu-item-77221'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/learning-center">Learning Center</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-81739' id='mega-menu-item-81739'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/category/tech-toolboxes/">Tech Toolboxes</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-80113' id='mega-menu-item-80113'><a class="mega-menu-link" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415581/eeworld">Webinars & Digital Events</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-55895' id='mega-menu-item-55895'><a class="mega-menu-link" aria-expanded="false" tabindex="0">Resources<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77693' id='mega-menu-item-77693'><a class="mega-menu-link" href="https://www.eeworldonline.com/category/digital-issues/">Digital Issues</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77694' id='mega-menu-item-77694'><a class="mega-menu-link" href="https://eetrainingdays.com/">EE Training Days</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55899' id='mega-menu-item-55899'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/2023-leap-awards-winners-are-announced/">LEAP Awards</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77695' id='mega-menu-item-77695'><a class="mega-menu-link" href="https://www.eeworldonline.com/category/podcasts/">Podcasts</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77375' id='mega-menu-item-77375'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/ee-world-webinars-and-digital-events/">Webinars / Digital Events</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55898' id='mega-menu-item-55898'><a class="mega-menu-link" href="http://www.engineeringwhitepapers.com/category/electricalelectronic/">White Papers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-62203' id='mega-menu-item-62203'><a class="mega-menu-link" href="https://www.designworldonline.com/category/news/engineering-diversity/">Engineering Diversity & Inclusion</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55896' id='mega-menu-item-55896'><a class="mega-menu-link" href="https://www.DesignFast.com">DesignFast</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-80115' id='mega-menu-item-80115'><a class="mega-menu-link" href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" tabindex="0">Subscribe</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-80423' id='mega-menu-item-80423'><a class="mega-menu-link" href="https://www.engineersgarage.com/join-us-as-a-guest-post-writer/" tabindex="0">Guest Post Guidelines</a></li><li class="menu-item search"><a href="#" class="search-toggle"><i class="icon-search"></i></a></li></ul></div></div></nav><div style="padding-top:10px;text-align:center"> <div id='div-gpt-eg_largeleader'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_largeleader'); }); </script> </div> </div><div class="site-inner"><div class="wrap"><div class="content-sidebar-wrap"><main class="content"><article class="type-post entry" aria-label="Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42"><header class="entry-header"><h1 class="entry-title">Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42</h1> <p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/priya/" class="entry-author-link" rel="author"><span class="entry-author-name">Priya</span></a></span> <time class="entry-time">November 20, 2024</time> </p></header><div class="entry-content"><div class="addtoany_share_save_container addtoany_content addtoany_content_top"><div class="a2a_kit a2a_kit_size_16 addtoany_list" data-a2a-url="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" data-a2a-title="Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42"><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F&amp;linkname=Secure%20client%20server%20communication%20over%20TLS%20security%20protocol%20using%20Mosquitto%20Broker%3A%20IOT%20Part%2042" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F&amp;linkname=Secure%20client%20server%20communication%20over%20TLS%20security%20protocol%20using%20Mosquitto%20Broker%3A%20IOT%20Part%2042" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F&amp;linkname=Secure%20client%20server%20communication%20over%20TLS%20security%20protocol%20using%20Mosquitto%20Broker%3A%20IOT%20Part%2042" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F&amp;linkname=Secure%20client%20server%20communication%20over%20TLS%20security%20protocol%20using%20Mosquitto%20Broker%3A%20IOT%20Part%2042" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.engineersgarage.com%2Fsecure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42%2F&amp;linkname=Secure%20client%20server%20communication%20over%20TLS%20security%20protocol%20using%20Mosquitto%20Broker%3A%20IOT%20Part%2042" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share"></a></div></div><div style="text-align: justify;">Transport Layer Security (TLS) is a security protocol that uses symmetric cryptography to secure data. In this tutorial, Client-Server communication will be setup using TLS Protocol so that data can be securely exchanged between them. The Mosquitto broker is used to provide TLS security. The Mosquitto broker uses 8883 port as an encrypted transmission port to securely exchange the data between clients.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">To learn more about IoT standards and protocols, check out the following tutorial &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><a href="https://www.engineersgarage.com/Articles/IOT-Architecture-Standards-Protocols">IoT Standards and Protocols</a></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Learn more about transport layer protocols from the following tutorial &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><a href="https://www.engineersgarage.com/Articles/Transport-Layer-Protocols">Transport Layer Protocols </a></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"> <div style="width: 598px" class="wp-caption aligncenter"><a href="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg"><img decoding="async" title="Image showing Secure Client Server Communication over TLS protocol using Mosquitto Broker" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg" alt="Image showing Secure Client Server Communication over TLS protocol using Mosquitto Broker" width="588" height="242" /></a><p class="wp-caption-text">Fig. 1: Image showing Secure Client Server Communication over TLS protocol using Mosquitto Broker</p></div> </div> <div style="text-align: center;"></div> <div style="text-align: center;"></div> <div style="text-align: center;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><strong>Software Required &#8211;</strong></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">• Platform- Linux</div> <div style="text-align: justify;">• Mosquitto broker Installed</div> <div style="text-align: justify;">• MQTT-spy client or Linux Terminal.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><strong>TLS Protocol &#8211; </strong></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">The TLS protocol provides the following features &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">1) Encryption of Data &#8211; The data is encrypted end to end so that other than two parties who are exchanging the information, no one can understand the data.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">2) Integrity of Data &#8211; The encrypted data cannot be manipulated by anyone.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">3) Authentication &#8211; One party can send the data to other party only when it will have the authenticity to send the data to that party.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">In TLS security, Client or Broker uses public key to encrypt the messages, private key to decrypt the messages and certificate to sign the message. To enable TLS security, a client requires the following &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">1) CA (certificate authority) certified client certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">2) Client private key for decryption</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">3) CA certificate that has signed the server certificate.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">To enable TLS security, the server requires the following &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">1) CA certified server certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">2) Server private key for decryption</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">3) CA certificate that has signed the client certificate.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">The openssl is used to create own certificate authority (CA), client keys, server keys and certificates. The openssl can be installed by the following commands &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Install Openssl" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Install-Openssl.jpg" alt="Screenshot of Command to Install Openssl" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 2: Screenshot of Command to Install Openssl</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Next, create a folder (any name) in the home directory and move into that directory by terminal. Now follow the below steps to generate the keys and certificates.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">1) Create the CA public and private key pair by running the following command in the terminal &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Create CA Public and Private Key Pairs" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Create-CA-Public-Private-Key-Pairs.jpg" alt="Screenshot of Command to Create CA Public and Private Key Pairs" /></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 3: Screenshot of Command to Create CA Public and Private Key Pairs</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">In the above command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">genrsa: Generates a RSA private key</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-des3: Let using DES3 cipher for the key generation (password)</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">size_of_private_key_in_bits is 2048</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-out: specifies the file name for the key (.key)</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">This command will generate a CA private key file. It will prompt for writing the user defined password. This password will be further used when the CA certificate will be signed with this private key.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">2) Create a CA certificate using the CA key by running the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Create CA Certificate" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Create-CA-Certificate.jpg" alt="Screenshot of Command to Create CA Certificate" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 4: Screenshot of Command to Create CA Certificate</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">In the above command,</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">req: is Request for certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-new: generates new certificate and will prompt user for several input fields.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-x509: creates a self-signed certificate.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-days: specifies the number of days the certificate is valid.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-key: is key file with private key to be used for signing</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-out: specifies the file name for the certificate (.crt)</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">3) Now create the server key pair by running the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Create Server Key Pair" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Create-Server-Key-Pair.jpg" alt="Screenshot of Command to Create Server Key Pair" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 5: Screenshot of Command to Create Server Key Pair</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">opensslgenrsa -out mosquitto_server.keysize of private key in bits.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">It is not protected with password here. In the above command,</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">genrsa: generates a RSA private key</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-out: specifies the file name for the key (.key)</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">size_of_private_key_in_bits is 2048</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">4) Now create a certificate request for server using the server private key by running the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Create a Certificate Request for Server" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Create-Certificate-Request-Server.jpg" alt="Screenshot of Command to Create a Certificate Request for Server" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 6: Screenshot of Command to Create a Certificate Request for Server</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">In the above command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">req: is Request for certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-new: generates new certificate and will prompt user for several input fields.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-key: is key file with private key to be used for signing</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-out: specifies the file name for the certificate (.csr)</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">5) Next, use the CA certificate to sign the broker certificate request by running the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Sign the Broker Certificate" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Sign-Broker-Certificate.jpg" alt="Screenshot of Command to Sign the Broker Certificate" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 7: Screenshot of Command to Sign the Broker Certificate</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">In the above command,</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">x509: creates a self-signed certificate.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-req: is Request for certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-in: is input file for the certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-CA: specifies the file to be signed</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-CAkey: is CA private key to sign the certificate with</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-CAcreateserial: is the serial number file that gets created if it does not exist</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-out: specifies the file name for the certificate (.crt)</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">-days: specifies the number of days the certificate is valid.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">6) For client, the same procedure is followed to generate the client private key, client certificate request and then sign the certificate request by CA certificate.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">The client key pair is generated by the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Generate Client Key Pair" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Generate-Client-Key-Pair.jpg" alt="Screenshot of Command to Generate Client Key Pair" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 8: Screenshot of Command to Generate Client Key Pair</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">The Client certificate request is made by running the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">opensslreq -new -out mosquitto_client.csr -key mosquitto_client.key</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">The CA certificate to sign the client certificate is generated by running the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Sign Client Certificate by CA Certificate" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Sign-Client-Certificate-CA-Certificate.jpg" alt="Screenshot of Command to Sign Client Certificate by CA Certificate" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 9: Screenshot of Command to Sign Client Certificate by CA Certificate</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Now there are total 9 files created named as follow &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">&#8211; CA.key : CA key file (public and private)</div> <div style="text-align: justify;">&#8211; CA.crt : CA certificate</div> <div style="text-align: justify;">&#8211; CA.srl : CA serial number file</div> <div style="text-align: justify;">&#8211; mosquitto_server.key : server key</div> <div style="text-align: justify;">&#8211; mosquitto_server.csr : server certificate request</div> <div style="text-align: justify;">&#8211; mosquitto_server.crt : server certificate</div> <div style="text-align: justify;">&#8211; mosquitto_client.key : client key</div> <div style="text-align: justify;">&#8211; mosquitto_client.csr : client certificate request</div> <div style="text-align: justify;">&#8211; mosquitto_client.crt : client certificate</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Next, the authentication of clients need to be enabled as well. From that, clients will be connected to the MQTT server only when they know the username and password of MQTT server. Follow the below steps to enable authentication &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">1) Create the server_password.txt file anywhere and inside this file, create username and password as following &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Create server_password.txt" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Create-server_password.txt.jpg" alt="Screenshot of Command to Create server_password.txt" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 10: Screenshot of Command to Create server_password.txt</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">2) Then encrypt this file using the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Encrypt the Server_password.txt File" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Encrypt-Server_password.txt-File.jpg" alt="Screenshot of Command to Encrypt the Server_password.txt File" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 11: Screenshot of Command to Encrypt the Server_password.txt File</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">3) Next, install Mosquitto broker. As Linux is used, so to install the broker, first add the Mosquitto repository by running the following command and install the mosquito broker &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Mosquito Broker Running on Encrypted Port 8883" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Mosquito-Broker-Running-Encrypted-Port-8883.jpg" alt="Screenshot of Mosquito Broker Running on Encrypted Port 8883" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 12: Screenshot of Command to Install Mosquito Broker</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Next, install Mosquitto clients for the PC by  installing Mosquitto developer libraries and Mosquitto client package as follow &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Install Mosquitto Clients" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Install-Mosquitto-Clients.jpg" alt="Screenshot of Command to Install Mosquitto Clients" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 13: Screenshot of Command to Install Mosquito Clients</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">The mqtt-spy can also be used along with the MQTT client. In order to use MQTT spy, skip the above steps. Now the broker is installed along with the  client and certificates as well.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Mosquitto by default is configured to run on port 1883. So, there is need of TLS port i.e. 8883.  The configuration of Mosquitto broker can be changed to listen on encrypted port. But before that, out of the 9 files generated, copy the following 3 files and paste into folder /etc/mosquitto/</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">• CA.crt- Paste this file in to /etc/mosquitto/ca_certificates. If this folder is not present then we can make a folder and then paste the file</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">• mosquitto_server.crt- Paste this file into /etc/mosquitto/certs.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">• mosquitto_server.key- Paste this file into /etc/mosquitto/certs</div> <div style="text-align: justify;"></div> <div style="text-align: justify;">Now copy the password file “server_password.txt” and paste it into /etc/mosquitto path. Now, there is the default configuration file. Change the file &#8211; mosquitto.conf as follow &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Changes in Default Configuration File" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Changes-Default-Configuration-File.jpg" alt="Screenshot of Changes in Default Configuration File" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 14: Screenshot of changes in Default Configuration File</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><span style="font-size: 12.8px;">Now the configuration file has been setup. It’s time to run the Mosquitto broker with this configuration file. Run it with super user by the following commands &#8211; </span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><strong>sudomosquitto –c mosquitto.conf –v</strong></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">It can be seen that the Mosquitto broker is running on port 8883 with TLS security as follow &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Mosquito Broker Running on Encrypted Port 8883" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Mosquito-Broker-Running-Encrypted-Port-8883.jpg" alt="Screenshot of Mosquito Broker Running on Encrypted Port 8883" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 15: Screenshot of Mosquito Broker Running on Encrypted Port 8883</em></span></div> <div style="text-align: center;"></div> <div style="text-align: center;"></div> <div style="text-align: center;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">It’s time to test the broker with the MQTT clients. To publish the data on Mosquitto broker, run the following command &#8211;</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Install Mosquito Broker" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Install-Mosquito-Broker.jpg" alt="Screenshot of Command to Install Mosquito Broker" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 16: Screenshot of Command to Publish the Data on Mosquito Broker</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><span style="font-size: 12.8px;">And to subscribe the topic from MQTT broker by running the following command &#8211;</span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Command to Subscribe the Topic from MQTT Broker" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Command-Subscribe-Topic-MQTT-Broker.jpg" alt="Screenshot of Command to Subscribe the Topic from MQTT Broker" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 17: Screenshot of Command to Subscribe the Topic from MQTT Broker</em></span></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;"></div> <div style="text-align: justify;">It can be seen that whatever is sent on the MQTT broker from publisher side, it is received on the subscriber side. This Client to Server communication is done in highly encrypted form.</div> <div style="text-align: justify;"></div> <div style="text-align: justify;"><img decoding="async" title="Screenshot of Client to Server Communication using MQTT Broker" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Screenshot-Client-Server-Communication-Using-MQTT-Broker.jpg" alt="Screenshot of Client to Server Communication using MQTT Broker" /></div> <div style="text-align: justify;"></div> <div style="text-align: center;"><span style="font-family: verdana,geneva,sans-serif;"><em>Fig. 18: Screenshot of Client to Server Communication using MQTT Broker</em></span></div> <div style="text-align: center;"></div> <div style="text-align: center;"></div> <hr><span class="entry-categories">Filed Under: <a href="https://www.engineersgarage.com/featured-contributions/" rel="category tag">Featured Contributions</a>, <a href="https://www.engineersgarage.com/tutorials/iot-tutorials/" rel="category tag">IoT tutorials</a>, <a href="https://www.engineersgarage.com/tutorials/" rel="category tag">Tutorials</a></span><br /><br />&nbsp;<hr><hr /> <nav class="navigation post-navigation" aria-label="Next Article"> <h2 class="screen-reader-text">Next Article</h2> <div class="nav-links"><div class="nav-previous"><a href="https://www.engineersgarage.com/application-of-ftp-protocol-in-internet-of-things-iot-part-43/" rel="prev">&larr; Previous Article</a></div><div class="nav-next"><a href="https://www.engineersgarage.com/stm32g031-based-motor-driver-supports-three-shunt-foc-control/" rel="next">Next Article &rarr;</a></div></div> </nav><hr /></div><footer class="entry-footer"></footer></article> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title"><span style="font-size:16px">Questions related to this article?<br />👉Ask and discuss on <a href="https://electro-tech-online.com?utm_source=EG&utm_medium=link&utm_campaign=TellUsWhatYouThink&utm_content=article14502&utm_term=forum" target="_blank" rel="nofollow noopener" style="color:red">Electro-Tech-Online.com</a> and <a href="https://edaboard.com?utm_source=EG&utm_medium=link&utm_campaign=TellUsWhatYouThink&utm_content=article14502&utm_term=forum" target="_blank" rel="nofollow noopener" style="color:red">EDAboard.com</a> forums.</span><br /><br /><hr />Tell Us What You Think!! <small><a rel="nofollow" id="cancel-comment-reply-link" href="/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/#respond" style="display:none;">Cancel reply</a></small></h3><p class="must-log-in">You must be <a href="https://www.engineersgarage.com/login?spw_redirect=https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/">logged in</a> to post a comment.</p> </div><!-- #respond --> <section id="custom_html-7" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><!-- need GAM TAG --></div></div></section> <section id="custom_html-8" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><center> <div style="display: flex; flex-direction: column; justify-content: center; width: 300px;"> <div align="center"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" target="_blank"><img src="https://www.engineersgarage.com/wp-content/uploads/2023/03/EG-300x100-1.jpg" alt=“engineers garage newsletter”></a></div> <div align="center" style="width: 300px; line-height: 20px; padding-top: 10px;"><span style="font-weight: bold; color: #0c506d; text-align: center; font-size: 20px;">EXPAND YOUR KNOWLEDGE AND STAY CONNECTED</span></div> <div align="center" style="line-height: 16px; padding-top: 5px;"><span style="text-align: center; font-size: 16px;">Get the latest info on technologies, tools and strategies for EE professionals.</span></div> <div align="center" style="padding-top: 10px;"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">GET THE ENEWSLETTER</button></a></div> </div> </center></div></div></section> </main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar"><section id="search-2" class="widget widget_search"><div class="widget-wrap"><form class="search-form" method="get" action="https://www.engineersgarage.com/" role="search"><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search this website"><input class="search-form-submit" type="submit" value="GO"><meta content="https://www.engineersgarage.com/?s={s}"></form></div></section> <section id="custom_html-5" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div align="center"> <div id='div-gpt-eg_sidebar1'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_sidebar1'); }); </script> </div> </div></div></div></section> <section id="custom_html-20" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">EE TECH TOOLBOX</h4> <div class="textwidget custom-html-widget"><center> <div style="display: flex; flex-direction: column; justify-content: center; width: 300px;"> <div align="center"><a href="https://www.eeworldonline.com/tech-toolbox-test-measurement/" target="_blank"><img src="https://www.eeworldonline.com/wp-content/uploads/2024/11/EE-TechToolbox-T_and_M_Page_01-scaled.jpg" alt=“ee tech toolbox”></a></div> <div align="center" style="width: 300px; line-height: 20px; padding-top: 10px;"><span style="font-weight: bold; color: #0c506d; text-align: center; font-size: 20px;">Tech Toolbox: Test & Measurement</span></div> <div align="center" style="line-height: 16px; padding-top: 5px;"><span style="text-align: center; font-size: 16px;"> Everything needs testing and testing needs measurement. This Tech Toolbox covers measurement fundamentals, accuracy, precision, and resolution. A look at the Smith chart, a handy tool for RF engineers, is also reviewed. </span></div> <div align="center" style="padding-top: 10px;"><a href="https://www.eeworldonline.com/tech-toolbox-test-measurement/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">Download PDF</button></a></div> <div align="center" style="padding-top: 10px;"><a href="https://www.eeworldonline.com/category/tech-toolboxes/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">View All Tech Toolboxes</button></a></div> </div> </center> </div></div></section> <section id="custom_html-14" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">EE Learning Center</h4> <div class="textwidget custom-html-widget"><center><div style="display: flex; flex-direction: column; width: 270px;"><a href="https://www.eeworldonline.com/learning-center" target="_blank" rel="noopener"><img src="https://www.engineersgarage.com/wp-content/uploads/2024/08/300x250-2-EE-LearnCtr.png" alt="EE Learning Center" style="max-width: 270px;" /></a> <div class="dropdown" style="text-align: center; margin-top: 10px;"> <button class="motion-design-guides">BROWSE CLASSROOMS</button> <div class="dropdown-content"> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/model-based-systems-engineering-classroom" target="_blank">Model-Based System Engineering</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/transformers-ii-classroom" target="_blank">Transformers II</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/automotive-connectivity-classroom" target="_blank">Automotive Connectivity</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/capacitators-classroom" target="_blank">Capacitors</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/programmable-power-classroom" target="_blank">Programmable Power</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/inductors" target="_blank">Inductors</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/classroom-fpga" target="_blank">FPGA</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/silicon-carbide-classroom" target="_blank">Silicon Carbide</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/adas-classroom" target="_blank">ADAS</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/classroom-high-voltage" target="_blank">High Voltage Power</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/emi-rfi-classroom" target="_blank">Electromagnetic & Radio Frequency Interference</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/testing-radio-frequency-classroom" target="_blank">Testing Basics Radio Frequency</a> </div> </div></div> </center> <center> <div class="dropdown" style="text-align: center; padding-top: 10px;"> <button class="motion-design-guides">Browse Design Guides</button> <div class="dropdown-content"> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa6026/?p=w_defa6026" target="_blank">USB-Based Oscilloscopes</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3554/" target="_blank">Connectors</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3475/" target="_blank">5G Connectivity</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3454/" target="_blank">Capacitors</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_rene01/" target="_blank">Bluetooth & Connectivity</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa2728/" target="_blank">WiFi & the IOT</a> <a class="motion-design-guide-option" href="https://dw-resources.designworldonline.com/free/w_defa2978/" target="_blank">Linear Position Sensors</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3337/" target="_blank">Relays</a> </div> </div> </center></div></div></section> <section id="custom_html-19" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><center> <div style="display: flex; flex-direction: column; justify-content: center; width: 300px;"> <div align="center"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" target="_blank"><img src="https://www.engineersgarage.com/wp-content/uploads/2023/03/EG-300x100-1.jpg" alt=“engineers garage newsletter”></a></div> <div align="center" style="width: 300px; line-height: 20px; padding-top: 10px;"><span style="font-weight: bold; color: #0c506d; text-align: center; font-size: 20px;">EXPAND YOUR KNOWLEDGE AND STAY CONNECTED</span></div> <div align="center" style="line-height: 16px; padding-top: 5px;"><span style="text-align: center; font-size: 16px;">Get the latest info on technologies, tools and strategies for EE professionals.</span></div> <div align="center" style="padding-top: 10px;"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">GET THE ENEWSLETTER</button></a></div> </div> </center></div></div></section> <section id="custom_html-15" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">HAVE A QUESTION?</h4> <div class="textwidget custom-html-widget"><div id="digital" style="padding: 0 15px 10px 15px;"> <span style="font-size: 12px;font-weight:bold"> Have a technical question about an article or other engineering questions? Check out our engineering forums <a href="https://www.edaboard.com" target="_blank" style="color:red">EDABoard.com</a> and <a href="https://www.electro-tech-online.com" target="_blank" style="color:red">Electro-Tech-Online.com</a> where you can get those questions asked and answered by your peers! </span> <br /> <br /> <div align="Center"> <div style="float: center;"><a href="https://www.edaboard.com/?utm_source=EG&utm_medium=widget&utm_campaign=question&utm_term=HaveQuestion" target="_blank" rel="nofollow"><button class="greenbutton">EDA Board</button></a></div> <br /> <div style="float: center;"><a href="https://www.electro-tech-online.com/?utm_source=EG&utm_medium=widget&utm_campaign=question&utm_term=HaveQuestion" target="_blank" rel="nofollow"><button class="greenbutton">Electro-Tech-Online</button></a></div> </div> </div> </div></div></section> <section id="rss-2" class="widget widget_rss"><div class="widget-wrap"><h4 class="widget-title widgettitle"><a class="rsswidget rss-widget-feed" href="http://www.edaboard.com/external.php?type=RSS"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="https://www.engineersgarage.com/wp-includes/images/rss.png" alt="RSS" loading="lazy" /></a> <a class="rsswidget rss-widget-title" href="https://www.edaboard.com/">EDABOARD.com Discussions</a></h4> <ul><li><a class='rsswidget' href='https://www.edaboard.com/threads/inductance-of-wirewound-power-resistors.413111/'>Inductance of wirewound power resistors</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/precision-in-different-multimeter-readings.413099/'>Precision in different multimeter readings...</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/electronic-load-needed.413112/'>Electronic load needed</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/transmit-the-pwm-signals-through-rfic.413100/'>Transmit the PWM signals through RFIC?</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/power-current-measurment.413116/'>Power &amp; current measurment</a></li></ul></div></section> <section id="rss-3" class="widget widget_rss"><div class="widget-wrap"><h4 class="widget-title widgettitle"><a class="rsswidget rss-widget-feed" href="https://www.electro-tech-online.com/forums/-/index.rss"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="https://www.engineersgarage.com/wp-includes/images/rss.png" alt="RSS" loading="lazy" /></a> <a class="rsswidget rss-widget-title" href="https://www.electro-tech-online.com/">Electro-Tech-Online.com Discussions</a></h4> <ul><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/electronic-damper-control.166937/'>Electronic Damper Control</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/display-tft-st7789-oshonsoft-basic.166219/'>Display TFT ST7789 (OshonSoft Basic).</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/cheap-pcbs-from-jlc-pcb-including-cheap-postage.166917/'>Cheap PCB&#039;s from JLC PCB, including cheap postage.</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/what-to-do-with-switches.166912/'>What to do with switches?</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/help-identifying-component.166932/'>Help identifying component</a></li></ul></div></section> <section id="category-posts-2" class="widget cat-post-widget"><div class="widget-wrap"><h4 class="widget-title widgettitle">Featured Series -Iot Tutorials (48 Part series)</h4> <ul id="category-posts-2-internal" class="category-posts-internal"> <li class='cat-post-item cat-post-current'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" title="Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg" class="attachment- size- wp-image-52222 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg 588w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker-300x123.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker-368x151.jpg 368w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" rel="bookmark">Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/application-of-ftp-protocol-in-internet-of-things-iot-part-43/" title="Application of FTP Protocol in Internet of Things &#8211; IOT Part 43"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol.jpg" class="attachment- size- wp-image-52475 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol.jpg 633w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol-300x201.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol-355x238.jpg 355w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/application-of-ftp-protocol-in-internet-of-things-iot-part-43/" rel="bookmark">Application of FTP Protocol in Internet of Things &#8211; IOT Part 43</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/automatic-software-update-by-iot-device-over-ftp-protocol-iot-part-44/" title="Automatic Software Update by IoT Device over FTP Protocol &#8211; IOT Part 44"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client.jpg" class="attachment- size- wp-image-52286 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client.jpg 1200w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-300x180.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-768x460.jpg 768w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-1024x613.jpg 1024w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-368x220.jpg 368w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/automatic-software-update-by-iot-device-over-ftp-protocol-iot-part-44/" rel="bookmark">Automatic Software Update by IoT Device over FTP Protocol &#8211; IOT Part 44</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/ssh-file-transfer-protocol-iot-part-45/" title="SSH File Transfer Protocol &#8211; IOT Part 45"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP.jpg" class="attachment- size- wp-image-54321 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP.jpg 465w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP-300x234.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP-306x238.jpg 306w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP-216x168.jpg 216w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/ssh-file-transfer-protocol-iot-part-45/" rel="bookmark">SSH File Transfer Protocol &#8211; IOT Part 45</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/raspberry-pi-server-based-hotel-restaurant-order-management-system-on-iot-iot-part-46/" title="Raspberry Pi Server based Hotel/Restaurant Order Management System on IoT &#8211; IOT Part 46"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured.jpg" class="attachment- size- wp-image-63002 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured.jpg 770w, https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured-300x195.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured-768x499.jpg 768w, https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured-368x238.jpg 368w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/raspberry-pi-server-based-hotel-restaurant-order-management-system-on-iot-iot-part-46/" rel="bookmark">Raspberry Pi Server based Hotel/Restaurant Order Management System on IoT &#8211; IOT Part 46</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/imap-protocol-iot-part-47-2/" title="IMAP Protocol- IOT Part 47"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm.jpg" class="attachment- size- wp-image-52474 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm.jpg 473w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm-184x300.jpg 184w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm-146x238.jpg 146w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/imap-protocol-iot-part-47-2/" rel="bookmark">IMAP Protocol- IOT Part 47</a></h6></div></li></ul> </div></section> <section id="recent-posts-2" class="widget widget_recent_entries"><div class="widget-wrap"> <h4 class="widget-title widgettitle">Recent Articles</h4> <ul> <li> <a href="https://www.engineersgarage.com/infineons-space-grade-512-mbit-flash-memory-supports-data-rates-up-to-133-mhz-for-fpga-boot/">Infineon’s space-grade 512 Mbit Flash memory supports data rates up to 133 MHz for FPGA Boot</a> </li> <li> <a href="https://www.engineersgarage.com/same-sky-expands-usb-portfolio-with-5-9-mm-type-c-series/">Same Sky expands USB portfolio with 5.9 mm Type-C series</a> </li> <li> <a href="https://www.engineersgarage.com/renesas-ddr5-chipset-reaches-12800-mt-s-transfer-speed/">Renesas DDR5 chipset reaches 12,800 MT/s transfer speed</a> </li> <li> <a href="https://www.engineersgarage.com/stmicroelectronics-releases-automotive-qualified-comparators-in-sc70-5-package/">STMicroelectronics releases automotive-qualified comparators in SC70-5 package</a> </li> <li> <a href="https://www.engineersgarage.com/melexis-launches-current-sensor-with-16-bit-over-current-detection-10-bit-temperature-monitoring/">Melexis launches current sensor with 16-bit over-current detection, 10-bit temperature monitoring</a> </li> </ul> </div></section> <section id="custom_html-3" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"> <div id='div-gpt-eg_sidebarbottom'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_sidebarbottom'); }); </script> </div> </div></div></section> <section id="custom_html-18" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">EE ENGINEERING TRAINING DAYS</h4> <div class="textwidget custom-html-widget"><center><div style="display: flex; flex-direction: column; width: 270px;"><a href="https://eetrainingdays.com/" target="_blank" rel="noopener"><img src="https://www.eeworldonline.com/wp-content/uploads/2024/01/300x250-side-bar-graphic.png" alt="engineering" /></a> </div> </center></div></div></section> <section id="custom_html-17" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">Submit a Guest Post</h4> <div class="textwidget custom-html-widget"><center> <a href="/join-us-as-a-guest-post-writer/"> <img src="/wp-content/uploads/2022/10/guest-post-banner.jpg" alt="submit a guest post"> </a> </center></div></div></section> </aside></div></div></div><div class="footer-socials"><div class="wrap"><label style="color:#ffffff">Connect with Engineers Garage</label> <a href="https://www.facebook.com/engineersgarage" target="_blank" rel="noopener noreferrer"><i class="icon-facebook"></i></a><a href="https://twitter.com/EngineersGarage" target="_blank" rel="noopener noreferrer"><i class="icon-twitter"></i></a><a href="https://www.youtube.com/@engineersgarage" target="_blank" rel="noopener noreferrer"><i class="icon-youtube"></i></a></div></div><footer class="site-footer"><div class="wrap"><div class="row"><div class="footer-logo"><a href="https://www.engineersgarage.com">Engineers Garage</a></div><div class="footer-menu"><div class="menu-footer-nav-container"><ul id="menu-footer-nav" class="menu"><li id="menu-item-55876" class="menu-item"><a target="_blank" href="http://www.analogictips.com/">Analog IC TIps</a></li> <li id="menu-item-55877" class="menu-item"><a target="_blank" href="https://www.connectortips.com/">Connector Tips</a></li> <li id="menu-item-80507" class="menu-item"><a href="https://www.batterypowertips.com/">Battery Power Tips</a></li> <li id="menu-item-55872" class="menu-item"><a target="_blank" href="https://www.DesignFast.com/">DesignFast</a></li> <li id="menu-item-55873" class="menu-item"><a target="_blank" href="http://www.edaboard.com/">EDABoard Forums</a></li> <li id="menu-item-55881" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com">EE World Online</a></li> <li id="menu-item-55874" class="menu-item"><a target="_blank" href="http://www.electro-tech-online.com/">Electro-Tech-Online Forums</a></li> <li id="menu-item-79699" class="menu-item"><a target="_blank" href="https://www.evengineeringonline.com/">EV Engineering</a></li> <li id="menu-item-55875" class="menu-item"><a target="_blank" href="http://www.microcontrollertips.com/">Microcontroller Tips</a></li> <li id="menu-item-55878" class="menu-item"><a target="_blank" href="http://www.powerelectronictips.com/">Power Electronic Tips</a></li> <li id="menu-item-55879" class="menu-item"><a target="_blank" href="http://www.sensortips.com/">Sensor Tips</a></li> <li id="menu-item-55880" class="menu-item"><a target="_blank" href="http://www.testandmeasurementtips.com/">Test and Measurement Tips</a></li> <li id="menu-item-60429" class="menu-item"><a target="_blank" href="https://www.5gtechnologyworld.com/">5G Technology World</a></li> <li id="menu-item-79962" class="menu-item"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/">Subscribe to our newsletter</a></li> <li id="menu-item-55885" class="menu-item"><a href="https://www.engineersgarage.com/about-us/">About Us</a></li> <li id="menu-item-55886" class="menu-item"><a href="https://www.engineersgarage.com/contact-us/">Contact Us</a></li> <li id="menu-item-55887" class="menu-item"><a target="_blank" href="https://marketing.wtwhmedia.com/2024-ee-world-online-media-guide/">Advertise</a></li> </ul></div></div><div class="footer-copyright"><p>Copyright &copy; 2024 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media<br /> <a href="http://www.wtwhmedia.com/privacy-policy/" target="_blank">Privacy Policy</a> </p></div></div></div></footer></div><div class="site-search"><div class="wrap"><div class="search-inner"><h2>Search Engineers Garage</h2><form class="search-form" method="get" action="https://www.engineersgarage.com/" role="search"><input class="search-form-input" type="search" name="s" id="searchform-2" placeholder="Search this website"><input class="search-form-submit" type="submit" value="GO"><meta content="https://www.engineersgarage.com/?s={s}"></form></div></div></div> <!-- xyzzy bottom --> </div> <script> var GAMaccountID = 5272491; var GAMnetworkName = 'ee_network'; var GAMadUnitName = 'eg_prestitial'; googletag.slots = googletag.slots || {}; </script> <script type="text/javascript"> function genesisBlocksShare( url, title, w, h ){ var left = ( window.innerWidth / 2 )-( w / 2 ); var top = ( window.innerHeight / 2 )-( h / 2 ); return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=600, height=600, top='+top+', left='+left); } </script> <!-- Google Tag Manager (noscript) Global --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MMC9PJ9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJMRR6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id='div-gpt-eg_wallpaper'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_wallpaper'); }); </script> </div> <div id='div-gpt-eg_allstreamflex'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_allstreamflex'); }); </script> </div> <div id='div-gpt-eg_allstreamprelude'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_allstreamprelude'); }); </script> </div> <div id="sidr-mobile-menu" class="sidr right"><a class="sidr-menu-close" href="#"><i class="icon-close"></i></a><div class="menu-main-nav-container"><ul id="menu-main-nav" class="menu"><li id="menu-item-61908" class="menu-item menu-item-has-children"><a href="https://www.engineersgarage.com/projects-and-tutorials/">Electronics Projects and Tutorials</a> <ul class="sub-menu"> <li id="menu-item-39808" class="menu-item menu-item-has-children"><a href="https://www.engineersgarage.com/electronic-projects/">Electronic Projects</a> <ul class="sub-menu"> <li id="menu-item-81272" class="menu-item"><a href="https://www.engineersgarage.com/arduino/">Arduino Projects</a></li> <li id="menu-item-81273" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/avr/">AVR</a></li> <li id="menu-item-80793" class="menu-item"><a href="https://www.engineersgarage.com/raspberry-pi-electronic-projects/">Raspberry pi</a></li> <li id="menu-item-78430" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/esp8266-electronic-projects/">ESP8266</a></li> <li id="menu-item-78434" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/beaglebone-electronic-projects/">BeagleBone</a></li> <li id="menu-item-80794" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/8051-microcontroller/">8051 Microcontroller</a></li> <li id="menu-item-55864" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/arm-electronic-projects-electronic-projects/">ARM</a></li> <li id="menu-item-80795" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/pic-microcontroller-electronic-projects/">PIC Microcontroller</a></li> <li id="menu-item-60239" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/stm32-electronic-projects-electronic-projects/">STM32</a></li> </ul> </li> <li id="menu-item-7268" class="menu-item menu-item-has-children"><a href="https://www.engineersgarage.com/tutorials/">Tutorials</a> <ul class="sub-menu"> <li id="menu-item-78818" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/audio-tutorials/">Audio Electronics</a></li> <li id="menu-item-78819" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/battery-management-systems/">Battery Management</a></li> <li id="menu-item-78820" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/brainwave/">Brainwave</a></li> <li id="menu-item-78833" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/evs/">Electric Vehicles</a></li> <li id="menu-item-78822" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/emc-emi/">EMI/EMC/RFI</a></li> <li id="menu-item-78823" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/filters/">Hardware Filters</a></li> <li id="menu-item-78826" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/iot-tutorials/">IoT tutorials</a></li> <li id="menu-item-80151" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/power/">Power Tutorials</a></li> <li id="menu-item-78835" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/python/">Python</a></li> <li id="menu-item-78829" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/sensors-tutorials/">Sensors</a></li> <li id="menu-item-78830" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/usb/">USB</a></li> <li id="menu-item-78832" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/vhdl-tutorials/">VHDL</a></li> </ul> </li> <li id="menu-item-56096" class="menu-item"><a href="https://www.engineersgarage.com/circuit_design/">Circuit Design</a></li> <li id="menu-item-62725" class="menu-item"><a target="_blank" href="https://www.youtube.com/user/engineersgarage">Project Videos</a></li> <li id="menu-item-7269" class="menu-item"><a href="https://www.engineersgarage.com/components/">Components</a></li> </ul> </li> <li id="menu-item-39810" class="menu-item menu-item-has-children"><a href="https://www.engineersgarage.com/article_page/">Articles</a> <ul class="sub-menu"> <li id="menu-item-63122" class="menu-item"><a href="https://www.engineersgarage.com/tech-articles/">Tech Articles</a></li> <li id="menu-item-13371" class="menu-item"><a href="https://www.engineersgarage.com/insight/">Insight</a></li> <li id="menu-item-13399" class="menu-item"><a href="https://www.engineersgarage.com/invention-stories/">Invention Stories</a></li> <li id="menu-item-13326" class="menu-item"><a href="https://www.engineersgarage.com/how_to/">How to</a></li> <li id="menu-item-59366" class="menu-item"><a href="https://www.engineersgarage.com/what_is/">What Is</a></li> </ul> </li> <li id="menu-item-1863" class="menu-item menu-item-has-children"><a href="#">News</a> <ul class="sub-menu"> <li id="menu-item-39809" class="menu-item"><a href="https://www.engineersgarage.com/news/">Electronic Product News</a></li> <li id="menu-item-77696" class="menu-item"><a href="https://www.engineersgarage.com/news/business-news/">Business News</a></li> <li id="menu-item-77697" class="menu-item"><a href="https://www.engineersgarage.com/news/company-start-up-news/">Company/Start-up News</a></li> <li id="menu-item-14489" class="menu-item"><a href="https://www.engineersgarage.com/reviews/">DIY Reviews</a></li> <li id="menu-item-14287" class="menu-item"><a href="https://www.engineersgarage.com/guest_post/">Guest Post</a></li> </ul> </li> <li id="menu-item-55871" class="menu-item menu-item-has-children"><a>Forums</a> <ul class="sub-menu"> <li id="menu-item-55870" class="menu-item"><a href="https://www.edaboard.com/">EDABoard.com</a></li> <li id="menu-item-55869" class="menu-item"><a href="https://www.electro-tech-online.com/">Electro-Tech-Online</a></li> <li id="menu-item-1851" class="menu-item"><a href="https://forums.engineersgarage.com/">EG Forum Archive</a></li> </ul> </li> <li id="menu-item-1868" class="menu-item menu-item-has-children"><a target="_blank" href="https://wtwh.me/9mk">DigiKey Store</a> <ul class="sub-menu"> <li id="menu-item-1869" class="menu-item"><a target="_blank" href="https://wtwh.me/9ml">Cables, Wires</a></li> <li id="menu-item-1870" class="menu-item"><a target="_blank" href="https://wtwh.me/9mm">Connectors, Interconnect</a></li> <li id="menu-item-1871" class="menu-item"><a target="_blank" href="https://wtwh.me/9mn">Discrete</a></li> <li id="menu-item-1872" class="menu-item"><a target="_blank" href="https://wtwh.me/9mo">Electromechanical</a></li> <li id="menu-item-1873" class="menu-item"><a target="_blank" href="https://wtwh.me/9mp">Embedded Computers</a></li> <li id="menu-item-1874" class="menu-item"><a target="_blank" href="https://wtwh.me/9mq">Enclosures, Hardware, Office</a></li> <li id="menu-item-1875" class="menu-item"><a target="_blank" href="https://wtwh.me/9mr">Integrated Circuits (ICs)</a></li> <li id="menu-item-1876" class="menu-item"><a target="_blank" href="https://wtwh.me/9ms">Isolators</a></li> <li id="menu-item-1877" class="menu-item"><a target="_blank" href="https://wtwh.me/9mt">LED/Optoelectronics</a></li> <li id="menu-item-1878" class="menu-item"><a target="_blank" href="https://wtwh.me/9mu">Passive</a></li> <li id="menu-item-1879" class="menu-item"><a target="_blank" href="https://wtwh.me/9mv">Power, Circuit Protection</a></li> <li id="menu-item-1880" class="menu-item"><a target="_blank" href="https://wtwh.me/9mw">Programmers</a></li> <li id="menu-item-1881" class="menu-item"><a target="_blank" href="https://wtwh.me/9mx">RF, Wireless</a></li> <li id="menu-item-1882" class="menu-item"><a target="_blank" href="https://wtwh.me/9mk">Semiconductors</a></li> <li id="menu-item-1883" class="menu-item"><a target="_blank" href="https://wtwh.me/9my">Sensors, Transducers</a></li> <li id="menu-item-1884" class="menu-item"><a target="_blank" href="https://wtwh.me/9mz">Test Products</a></li> <li id="menu-item-1885" class="menu-item"><a target="_blank" href="https://wtwh.me/9mA">Tools</a></li> </ul> </li> <li id="menu-item-56062" class="menu-item menu-item-has-children"><a href="https://www.eeworldonline.com/learning-center">Learn</a> <ul class="sub-menu"> <li id="menu-item-80114" class="menu-item"><a href="https://www.eeworldonline.com/category/tech-tips/">eBooks/Tech Tips</a></li> <li id="menu-item-76567" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/design-guide-library">Design Guides</a></li> <li id="menu-item-77221" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/learning-center">Learning Center</a></li> <li id="menu-item-81739" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/category/tech-toolboxes/">Tech Toolboxes</a></li> <li id="menu-item-80113" class="menu-item"><a href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415581/eeworld">Webinars &#038; Digital Events</a></li> </ul> </li> <li id="menu-item-55895" class="menu-item menu-item-has-children"><a>Resources</a> <ul class="sub-menu"> <li id="menu-item-77693" class="menu-item"><a href="https://www.eeworldonline.com/category/digital-issues/">Digital Issues</a></li> <li id="menu-item-77694" class="menu-item"><a href="https://eetrainingdays.com/">EE Training Days</a></li> <li id="menu-item-55899" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/2023-leap-awards-winners-are-announced/">LEAP Awards</a></li> <li id="menu-item-77695" class="menu-item"><a href="https://www.eeworldonline.com/category/podcasts/">Podcasts</a></li> <li id="menu-item-77375" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/ee-world-webinars-and-digital-events/">Webinars / Digital Events</a></li> <li id="menu-item-55898" class="menu-item"><a href="http://www.engineeringwhitepapers.com/category/electricalelectronic/">White Papers</a></li> <li id="menu-item-62203" class="menu-item"><a href="https://www.designworldonline.com/category/news/engineering-diversity/">Engineering Diversity &#038; Inclusion</a></li> <li id="menu-item-55896" class="menu-item"><a href="https://www.DesignFast.com">DesignFast</a></li> </ul> </li> <li id="menu-item-80115" class="menu-item"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/">Subscribe</a></li> <li id="menu-item-80423" class="menu-item"><a href="https://www.engineersgarage.com/join-us-as-a-guest-post-writer/">Guest Post Guidelines</a></li> </ul></div></div></div><style type="text/css" media="screen"></style><script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/prestitial/assets/js/adlogic.js?ver=1.1.0" id="wtwh_prestitial_core_js-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/genesis-blocks/dist/assets/js/dismiss.js?ver=1720775797" id="genesis-blocks-dismiss-js-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/comment-reply.min.js?ver=6.7" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/themes/ThemeWTWHv2/assets/js/global-min.js?ver=1629218360" id="ea-global-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3" id="jquery-ui-tabs-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.4" id="megamenu-js"></script> <script type="text/javascript" async data-no-optimize="1" src="https://www.engineersgarage.com/wp-content/plugins/perfmatters/vendor/instant-page/pminstantpage.min.js?ver=2.3.4" id="perfmatters-instant-page-js"></script> <script type="text/javascript">jQuery(document).ready(function($) { $(".ui-tabs").tabs(); });</script> <script>"undefined"!=typeof jQuery&&jQuery(document).ready(function(){"objectFit"in document.documentElement.style==!1&&(jQuery(".cat-post-item figure").removeClass("cat-post-crop"),jQuery(".cat-post-item figure").addClass("cat-post-crop-not-supported")),(document.documentMode||/Edge/.test(navigator.userAgent))&&(jQuery(".cat-post-item figure img").height("+=1"),window.setTimeout(function(){jQuery(".cat-post-item figure img").height("-=1")},0))});</script> <script type="text/javascript"> if (typeof jQuery !== 'undefined') { var cat_posts_namespace = window.cat_posts_namespace || {}; cat_posts_namespace.layout_wrap_text = cat_posts_namespace.layout_wrap_text || {}; cat_posts_namespace.layout_img_size = cat_posts_namespace.layout_img_size || {}; cat_posts_namespace.layout_wrap_text = { preWrap : function (widget) { jQuery(widget).find('.cat-post-item').each(function(){ var _that = jQuery(this); _that.find('p.cpwp-excerpt-text').addClass('cpwp-wrap-text'); _that.find('p.cpwp-excerpt-text').closest('div').wrap('<div class="cpwp-wrap-text-stage"></div>'); }); return; }, add : function(_this){ var _that = jQuery(_this); if (_that.find('p.cpwp-excerpt-text').height() < _that.find('.cat-post-thumbnail').height()) { _that.find('p.cpwp-excerpt-text').closest('.cpwp-wrap-text-stage').removeClass( "cpwp-wrap-text" ); _that.find('p.cpwp-excerpt-text').addClass( "cpwp-wrap-text" ); }else{ _that.find('p.cpwp-excerpt-text').removeClass( "cpwp-wrap-text" ); _that.find('p.cpwp-excerpt-text').closest('.cpwp-wrap-text-stage').addClass( "cpwp-wrap-text" ); } return; }, handleLazyLoading : function(_this) { var width = jQuery(_this).find('img').width(); if( 0 !== width ){ cat_posts_namespace.layout_wrap_text.add(_this); } else { jQuery(_this).find('img').one("load", function(){ cat_posts_namespace.layout_wrap_text.add(_this); }); } return; }, setClass : function (widget) { // var _widget = jQuery(widget); jQuery(widget).find('.cat-post-item').each(function(){ cat_posts_namespace.layout_wrap_text.handleLazyLoading(this); }); return; } } cat_posts_namespace.layout_img_size = { replace : function(_this){ var _that = jQuery(_this), resp_w = _that.width(), resp_h = _that.height(), orig_w = _that.data('cat-posts-width'), orig_h = _that.data('cat-posts-height'); if( resp_w < orig_w ){ _that.height( resp_w * orig_h / orig_w ); } else { _that.height( '' ); } return; }, handleLazyLoading : function(_this) { var width = jQuery(_this).width(); if( 0 !== width ){ cat_posts_namespace.layout_img_size.replace(_this); } else { jQuery(_this).one("load", function(){ cat_posts_namespace.layout_img_size.replace(_this); }); } return; }, setHeight : function (widget) { jQuery(widget).find('.cat-post-item img').each(function(){ cat_posts_namespace.layout_img_size.handleLazyLoading(this); }); return; } } let widget = jQuery('#category-posts-2-internal'); jQuery( document ).ready(function () { cat_posts_namespace.layout_wrap_text.setClass(widget); cat_posts_namespace.layout_img_size.setHeight(widget); }); jQuery(window).on('load resize', function() { cat_posts_namespace.layout_wrap_text.setClass(widget); cat_posts_namespace.layout_img_size.setHeight(widget); }); // low-end mobile cat_posts_namespace.layout_wrap_text.preWrap(widget); cat_posts_namespace.layout_wrap_text.setClass(widget); cat_posts_namespace.layout_img_size.setHeight(widget); } </script> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10