{"id":29643,"date":"2022-11-25T18:27:52","date_gmt":"2022-11-25T12:57:52","guid":{"rendered":"https:\/\/blazeclan.com\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/"},"modified":"2023-02-27T18:10:12","modified_gmt":"2023-02-27T12:40:12","slug":"xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter","status":"publish","type":"post","link":"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/","title":{"rendered":"XMPP for dummies &#8211; Part 2 &#8211; A 4 Step Life Cycle to Create Your Own Chatter!"},"content":{"rendered":"<p>Courtesy: orbtr.net<\/p>\n<h4><span>Flash Back<\/span><\/h4>\n<p>From the previous post we got a faint idea of how Instant Messaging works, right? But even then, let me just give you a flash back:<\/p>\n<ol>\n<li>IM (Instant Messaging) follows a certain protocol , ie. XMPP<\/li>\n<li>XMPP stands for&nbsp;Extensible Messaging and Presence Protocol<\/li>\n<li>XMPP is a protocol that transports small amounts of data between two network endpoints.<\/li>\n<li>The data exchanged is structured in XML.<\/li>\n<li>Data is exchanged via Streams established between the server and client or another server.<\/li>\n<\/ol>\n<ul>\n<li><span>The data being exchanged is called as a Stanza.<\/span><\/li>\n<li>There are 3 types of stanzas:<\/li>\n<\/ul>\n<p>1. <strong>Presence<\/strong> &#8211; This provides information related to a user&#8217;s presence (online,offline,status messages etc).<\/p>\n<p>2. <strong>Message<\/strong> &#8211; This is the actual messages sent between users.<\/p>\n<p>3.<strong> IQ<\/strong> &#8211; This provides information based on queries , such as to retrieve a users information or update the users profile, get a user\u2019s roster information etc.<\/p>\n<p>&nbsp;<!--more--><\/p>\n<h3><span>The 4 Step Life Cycle of an XMPP Connection<\/span><\/h3>\n<p><script type=\"application\/ld+json\"><br \/>\n{<br \/>\n  \"@context\": \"https:\/\/schema.org\/\",<br \/>\n  \"@type\": \"HowTo\",<br \/>\n  \"name\": \"The 4 Step Life Cycle of an XMPP Connection\",<br \/>\n  \"description\": \"we need to first establish streams between two servers or the server\/client. So lets first understand that how streams or a connection between servers or client\/server is established.\",<br \/>\n  \"image\": \"https:\/\/blazeclan.com\/wp-content\/webp-express\/webp-images\/doc-root\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-%E2%80%93-Part-2-%E2%80%93-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter.png.webp\",<br \/>\n  \"step\": [{<br \/>\n    \"@type\": \"HowToStep\",<br \/>\n    \"text\": \"Connection:<\/p>\n<p>In order to for streams to established, the server client must first establish a connection. Let us take an example for this:<\/p>\n<p>When we type an address into our browsers address bar and hit enter, our browser searches for an ip address to download the web page from. An entry of our websites name (like: www.example.com) and a corresponding ip address (lets say, 124.124.124) is stored as a record in a DNS server. So the browser requests the DNS server to give the ip address for www.example.com and then goes to the specified ip address (124.124.124) and downloads the page to be presented to us.<\/p>\n<p>Similarly, in the case of  XMPP , SRV records are used. When a client wants to connect to a server or to another server, it first queries for the appropriate SRV record at the server\u2019s domain. Once a record is retrieved, a connection is established.\"<br \/>\n  },{<br \/>\n    \"@type\": \"HowToStep\",<br \/>\n    \"text\": \"Creating Streams:<\/p>\n<p>Now that a connection has been established, we need to open streams from both sides, in order to allow the exchange of elements, i.e Stanzas. This is done , by sending a <stream:stream> to the server. The server then responds back with a <stream:stream> tag.<\/p>\n<p>Once this has been done, we now have streams opened in both directions. Now stanzas can be exchanged between the two endpoints.\"<br \/>\n  },{<br \/>\n    \"@type\": \"HowToStep\",<br \/>\n    \"text\": \"Authentication:<\/p>\n<p>Now that we have established a connection and the streams have been setup, the next step is authentication. XMPP authenticates clients using Simple Authentication and Security Layers (SASL) protocol [Check out the Details here], though many other authentication mechanisms can be used.<\/p>\n<p>Once the client has been authenticated, the client is bound to a resource.\"<br \/>\n  },{<br \/>\n    \"@type\": \"HowToStep\",<br \/>\n    \"text\": \"Disconnection:<\/p>\n<p>Once your done, you decide to logout. When you click logout on your client, what your client does is, it sends a presence stanza to your server (link to the previous blog for stanzas) telling the server that you are unavailable. So the other users, who have you in their rosters will come to know that you are offline. After this the stream is terminated using <\/stream:stream>\"<br \/>\n  }]<br \/>\n}<br \/>\n<\/script><\/p>\n<p>So now that we have had a small revision, lets move on to the next part. As discussed earlier we know that stanzas need to be exchanged between a server, client or any other server for the XMPP functionality to actually work. We also know that in order to exchange the stanzas, we need to first establish streams between two servers or the server\/client. So lets first understand that how streams or a connection between servers or client\/server is established.<\/p>\n<p>We can break this life cycle into four parts:<\/p>\n<h4><span>a) Connection<\/span><\/h4>\n<p>In order to for streams to established, the server client must first establish a connection. Let us take an example for this:<\/p>\n<p>When we type an address into our browsers address bar and hit enter, our browser searches for an ip address to download the web page from. An entry of our websites name (like:&nbsp;www.example.com) and a corresponding ip address (lets say, 124.124.124) is stored as a record in a <a title=\"What is Domain Name System?\" href=\"https:\/\/en.wikipedia.org\/wiki\/Domain_Name_System\" target=\"_blank\" rel=\"noopener noreferrer\">DNS server<\/a>. So the browser requests the DNS server to give the ip address for www.example.com and then goes to the specified ip address (124.124.124) and downloads the page to be presented to us.<\/p>\n<p>Similarly, in the case of&nbsp; XMPP , <a title=\"Know more about How these work\" href=\"https:\/\/wiki.xmpp.org\/web\/SRV_Records\" target=\"_blank\" rel=\"noopener noreferrer\">SRV records<\/a> are used. When a client wants to connect to a server or to another server, it first queries for the appropriate SRV record at the server\u2019s domain.&nbsp;Once a record is retrieved, a connection is established.<\/p>\n<h4><span>b) Creating Streams<\/span><\/h4>\n<p>Now that a connection has been established, we need to open streams from both sides, in order to allow the exchange of elements, i.e Stanzas. This is done , by sending a <em>&lt;stream:stream&gt;&nbsp;<\/em>to the server. The server then responds back with a <em>&lt;stream:stream&gt;&nbsp;<\/em>tag.<\/p>\n<p>Once this has been done, we now have streams opened in both directions. Now stanzas can be exchanged between the two endpoints.<\/p>\n<p>Another point to be noted, along with the &lt;stream:stream&gt; tag , &lt;stream:features&gt; tag is also sent by the server (this happens only once, when the streams are being established).&nbsp;This tag embodies the features of the stream established with the server .These features are mostly related to the encryption and authentication options supported by the stream,&nbsp;for example whether the stream uses TLS or not.<\/p>\n<h4><span>c)&nbsp;Authentication<\/span><\/h4>\n<p>Now that we have established a connection and the streams have been setup, the next step is authentication. XMPP authenticates clients using Simple Authentication and Security Layers (SASL) protocol [Check out the Details here],&nbsp;though many other authentication mechanisms can be used.<\/p>\n<p>Once the client has been authenticated, the client is bound to a resource.<\/p>\n<p>Now you might&nbsp; wonder what is a resource? Consider you login to your account,from your workplace using&nbsp; an IM client( say for example PIDGIN ). Now you do not logout from it, go home and using the same&nbsp; credentials, you can login again with the same credentials using another client. You do not need credentials from a different account to do this. In a nut shell, multiple logins is made possible using resources. Every time you login from another client, each of them is assigned a resource (more like an identifier). This is provided either by the server or the client itself.<\/p>\n<p>Once authenticated and assigned a resource, you can start exchanging your Stanzas.<\/p>\n<h4><span>d) Disconnection:<\/span><\/h4>\n<p>Once your done, you decide to logout. When you click logout on your client, what your client does is, it sends a presence stanza to your server (link to the previous blog for stanzas) telling the server that you are unavailable. So the other users, who have you in their rosters will come to know that you are offline. After this the stream is terminated using &lt;\/stream:stream&gt;<\/p>\n<p>( Note: We opened the stream earlier using &lt;stream:stream&gt;)<\/p>\n<p>So this is the entire Life Cycle of how we actually start chatting with our friends\/colleagues. Doesn&#8217;t sound all that difficult now right?<\/p>\n<p>Well, in our next bog, we will concentrate more on the building blocks of the XMPP protocol, the \u201cStanzas\u201d, in detail. This will help us better understand, how your client( eg WatsApp,GTalk)&nbsp; comes to know, whether the user you want to chat with is online or not, whether the user is currently typing or not, how you receive the messages etc. So till then feel free to reach out to me! Social details are down below or you can comment your likes, dislikes or questions. Will be happy to revert back!<\/p>\n<p>&nbsp;<\/p>\n<h4>Some reads on the Cloud &amp; Related technology you might find interesting:<\/h4>\n<p>1. The Abstract Design Pattern with Examples \u2013 Solving the Design Pattern Conundrum<br \/>\n2.&nbsp;Hadoop Gives way to Real Time Big Data Stream Processing \u2013 The 3 Key Attributes \u2013 Collect | Process | Analyze<br \/>\n3.&nbsp;MongoDB on the Clouds \u2013 An Introduction to an Evolution from RDBMS<br \/>\n<span>4. Simplifying Coding with the Decorator Design Pattern \u2013 When To &amp; When Not to Use it!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Courtesy: orbtr.net Flash Back From the previous post we got a faint idea of how Instant Messaging works, right? But even then, let me just give you a flash back: IM (Instant Messaging) follows a certain protocol , ie. XMPP XMPP stands for&nbsp;Extensible Messaging and Presence Protocol XMPP is a protocol that transports small amounts [&hellip;]<\/p>\n","protected":false},"author":192,"featured_media":17292,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[913],"tags":[],"class_list":["post-29643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-asean"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>XMPP for dummies - Part 2 - A 4 Step Life Cycle to Create Your Own Chatter! - Blazeclan<\/title>\n<meta name=\"description\" content=\"From the previous post we got a faint idea of how Instant Messaging works, right?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"XMPP for dummies - Part 2 - A 4 Step Life Cycle to Create Your Own Chatter! - Blazeclan\" \/>\n<meta property=\"og:description\" content=\"From the previous post we got a faint idea of how Instant Messaging works, right?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\" \/>\n<meta property=\"og:site_name\" content=\"Blazeclan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/blazeclan.hq\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-25T12:57:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-27T12:40:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1650\" \/>\n\t<meta property=\"og:image:height\" content=\"680\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Team Blazeclan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@blazeclan_hq\" \/>\n<meta name=\"twitter:site\" content=\"@blazeclan_hq\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Team Blazeclan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\"},\"author\":{\"name\":\"Team Blazeclan\",\"@id\":\"https:\/\/blazeclan.com\/asean\/#\/schema\/person\/779910eccddff4a1ea6663b6bfb271e8\"},\"headline\":\"XMPP for dummies &#8211; Part 2 &#8211; A 4 Step Life Cycle to Create Your Own Chatter!\",\"datePublished\":\"2022-11-25T12:57:52+00:00\",\"dateModified\":\"2023-02-27T12:40:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\"},\"wordCount\":1018,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blazeclan.com\/asean\/#organization\"},\"image\":{\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png\",\"articleSection\":[\"Cloud\"],\"inLanguage\":\"ASEAN\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\",\"url\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\",\"name\":\"XMPP for dummies - Part 2 - A 4 Step Life Cycle to Create Your Own Chatter! - Blazeclan\",\"isPartOf\":{\"@id\":\"https:\/\/blazeclan.com\/asean\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png\",\"datePublished\":\"2022-11-25T12:57:52+00:00\",\"dateModified\":\"2023-02-27T12:40:12+00:00\",\"description\":\"From the previous post we got a faint idea of how Instant Messaging works, right?\",\"breadcrumb\":{\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#breadcrumb\"},\"inLanguage\":\"ASEAN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ASEAN\",\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage\",\"url\":\"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png\",\"contentUrl\":\"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png\",\"width\":1650,\"height\":680},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blazeclan.com\/asean\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"XMPP for dummies &#8211; Part 2 &#8211; A 4 Step Life Cycle to Create Your Own Chatter!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blazeclan.com\/asean\/#website\",\"url\":\"https:\/\/blazeclan.com\/asean\/\",\"name\":\"Blazeclan\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/blazeclan.com\/asean\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blazeclan.com\/asean\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ASEAN\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blazeclan.com\/asean\/#organization\",\"name\":\"Blazeclan\",\"url\":\"https:\/\/blazeclan.com\/asean\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ASEAN\",\"@id\":\"https:\/\/blazeclan.com\/asean\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blazeclan.com\/wp-content\/uploads\/2024\/10\/ITCI-Blazeclan_logo.svg\",\"contentUrl\":\"https:\/\/blazeclan.com\/wp-content\/uploads\/2024\/10\/ITCI-Blazeclan_logo.svg\",\"caption\":\"Blazeclan\"},\"image\":{\"@id\":\"https:\/\/blazeclan.com\/asean\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/blazeclan.hq\/\",\"https:\/\/x.com\/blazeclan_hq\",\"https:\/\/www.instagram.com\/blazeclantechnologies\/\",\"https:\/\/www.linkedin.com\/company\/blazeclan-technologies\/\",\"https:\/\/www.youtube.com\/channel\/UCCKF4Lcbtus-pUoZr7Lxrow\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blazeclan.com\/asean\/#\/schema\/person\/779910eccddff4a1ea6663b6bfb271e8\",\"name\":\"Team Blazeclan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ASEAN\",\"@id\":\"https:\/\/blazeclan.com\/asean\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a43c1fa01bb3c7e839254c9084bf11ed422d7e633231f9e935096045af416ba2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a43c1fa01bb3c7e839254c9084bf11ed422d7e633231f9e935096045af416ba2?s=96&d=mm&r=g\",\"caption\":\"Team Blazeclan\"},\"sameAs\":[\"http:\/\/localhost\/ps-local-wp\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"XMPP for dummies - Part 2 - A 4 Step Life Cycle to Create Your Own Chatter! - Blazeclan","description":"From the previous post we got a faint idea of how Instant Messaging works, right?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/","og_locale":"en_US","og_type":"article","og_title":"XMPP for dummies - Part 2 - A 4 Step Life Cycle to Create Your Own Chatter! - Blazeclan","og_description":"From the previous post we got a faint idea of how Instant Messaging works, right?","og_url":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/","og_site_name":"Blazeclan","article_publisher":"https:\/\/www.facebook.com\/blazeclan.hq\/","article_published_time":"2022-11-25T12:57:52+00:00","article_modified_time":"2023-02-27T12:40:12+00:00","og_image":[{"width":1650,"height":680,"url":"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png","type":"image\/png"}],"author":"Team Blazeclan","twitter_card":"summary_large_image","twitter_creator":"@blazeclan_hq","twitter_site":"@blazeclan_hq","twitter_misc":{"Written by":"Team Blazeclan","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#article","isPartOf":{"@id":"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/"},"author":{"name":"Team Blazeclan","@id":"https:\/\/blazeclan.com\/asean\/#\/schema\/person\/779910eccddff4a1ea6663b6bfb271e8"},"headline":"XMPP for dummies &#8211; Part 2 &#8211; A 4 Step Life Cycle to Create Your Own Chatter!","datePublished":"2022-11-25T12:57:52+00:00","dateModified":"2023-02-27T12:40:12+00:00","mainEntityOfPage":{"@id":"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/"},"wordCount":1018,"commentCount":0,"publisher":{"@id":"https:\/\/blazeclan.com\/asean\/#organization"},"image":{"@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage"},"thumbnailUrl":"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png","articleSection":["Cloud"],"inLanguage":"ASEAN","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blazeclan.com\/asean\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/","url":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/","name":"XMPP for dummies - Part 2 - A 4 Step Life Cycle to Create Your Own Chatter! - Blazeclan","isPartOf":{"@id":"https:\/\/blazeclan.com\/asean\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage"},"image":{"@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage"},"thumbnailUrl":"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png","datePublished":"2022-11-25T12:57:52+00:00","dateModified":"2023-02-27T12:40:12+00:00","description":"From the previous post we got a faint idea of how Instant Messaging works, right?","breadcrumb":{"@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#breadcrumb"},"inLanguage":"ASEAN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/"]}]},{"@type":"ImageObject","inLanguage":"ASEAN","@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#primaryimage","url":"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png","contentUrl":"https:\/\/blazeclan.com\/wp-content\/uploads\/2014\/05\/XMPP-for-dummies-\u2013-Part-2-\u2013-A-4-Step-Life-Cycle-to-Create-Your-Own-Chatter-1.png","width":1650,"height":680},{"@type":"BreadcrumbList","@id":"https:\/\/blazeclan.com\/blog\/xmpp-for-dummies-part-2-a-4-step-life-cycle-to-create-your-own-chatter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blazeclan.com\/asean\/"},{"@type":"ListItem","position":2,"name":"XMPP for dummies &#8211; Part 2 &#8211; A 4 Step Life Cycle to Create Your Own Chatter!"}]},{"@type":"WebSite","@id":"https:\/\/blazeclan.com\/asean\/#website","url":"https:\/\/blazeclan.com\/asean\/","name":"Blazeclan","description":"","publisher":{"@id":"https:\/\/blazeclan.com\/asean\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blazeclan.com\/asean\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ASEAN"},{"@type":"Organization","@id":"https:\/\/blazeclan.com\/asean\/#organization","name":"Blazeclan","url":"https:\/\/blazeclan.com\/asean\/","logo":{"@type":"ImageObject","inLanguage":"ASEAN","@id":"https:\/\/blazeclan.com\/asean\/#\/schema\/logo\/image\/","url":"https:\/\/blazeclan.com\/wp-content\/uploads\/2024\/10\/ITCI-Blazeclan_logo.svg","contentUrl":"https:\/\/blazeclan.com\/wp-content\/uploads\/2024\/10\/ITCI-Blazeclan_logo.svg","caption":"Blazeclan"},"image":{"@id":"https:\/\/blazeclan.com\/asean\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/blazeclan.hq\/","https:\/\/x.com\/blazeclan_hq","https:\/\/www.instagram.com\/blazeclantechnologies\/","https:\/\/www.linkedin.com\/company\/blazeclan-technologies\/","https:\/\/www.youtube.com\/channel\/UCCKF4Lcbtus-pUoZr7Lxrow"]},{"@type":"Person","@id":"https:\/\/blazeclan.com\/asean\/#\/schema\/person\/779910eccddff4a1ea6663b6bfb271e8","name":"Team Blazeclan","image":{"@type":"ImageObject","inLanguage":"ASEAN","@id":"https:\/\/blazeclan.com\/asean\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a43c1fa01bb3c7e839254c9084bf11ed422d7e633231f9e935096045af416ba2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a43c1fa01bb3c7e839254c9084bf11ed422d7e633231f9e935096045af416ba2?s=96&d=mm&r=g","caption":"Team Blazeclan"},"sameAs":["http:\/\/localhost\/ps-local-wp"]}]}},"_links":{"self":[{"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/posts\/29643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/users\/192"}],"replies":[{"embeddable":true,"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/comments?post=29643"}],"version-history":[{"count":0,"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/posts\/29643\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/media\/17292"}],"wp:attachment":[{"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/media?parent=29643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/categories?post=29643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blazeclan.com\/asean\/wp-json\/wp\/v2\/tags?post=29643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}