{"id":38,"date":"2026-04-07T16:23:11","date_gmt":"2026-04-07T16:23:11","guid":{"rendered":"http:\/\/localhost:8080\/knowledge-base\/what-is-a-websocket-connection\/"},"modified":"2026-04-12T19:03:51","modified_gmt":"2026-04-12T19:03:51","slug":"what-is-a-websocket-connection","status":"publish","type":"post","link":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/","title":{"rendered":"What is a WebSocket Connection?"},"content":{"rendered":"\n<p>A <strong>WebSocket connection<\/strong> is a communication protocol that provides a persistent, two-way connection between a client and a server. Unlike traditional HTTP, which is stateless and follows a request-response model, WebSocket allows both the client and server to send data to each other independently, making it an ideal solution for real-time applications like chat, live notifications, and collaborative tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How WebSocket Works<\/h3>\n\n\n\n<p>WebSocket connections begin with an HTTP handshake, during which the client requests an upgrade from HTTP to WebSocket. Once accepted by the server, the protocol switches from HTTP to WebSocket, and a persistent, full-duplex communication channel is established. This connection remains open until explicitly closed by the client or server, enabling continuous data flow with minimal latency.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Differences Between HTTP and WebSocket<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Feature<\/strong><\/th><th><strong>HTTP<\/strong><\/th><th><strong>WebSocket<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Communication Model<\/td><td>Request-response, unidirectional<\/td><td>Full-duplex, bidirectional<\/td><\/tr><tr><td>Connection Persistence<\/td><td>Stateless, new connection each time<\/td><td>Persistent, single connection<\/td><\/tr><tr><td>Latency<\/td><td>Higher, due to repeated connections<\/td><td>Low, due to a single open channel<\/td><\/tr><tr><td>Ideal Use Cases<\/td><td>Single interactions (e.g., loading a webpage)<\/td><td>Real-time, continuous data exchange<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Advantages of WebSocket<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Low Latency:<\/strong> With a persistent connection, data can be sent and received almost instantly.<\/li>\n\n\n\n<li><strong>Efficiency:<\/strong> Reduces the overhead of repeated HTTP connections.<\/li>\n\n\n\n<li><strong>Bidirectional Communication:<\/strong> Allows the server to push data to the client without waiting for requests.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">WebSocket Lifecycle<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Handshake<\/strong>: The connection starts with an HTTP request, including the <code>Upgrade: websocket<\/code> header.<\/li>\n\n\n\n<li><strong>Connection Opened<\/strong>: Once the server acknowledges, the protocol switches to WebSocket.<\/li>\n\n\n\n<li><strong>Data Transmission<\/strong>: Both client and server can send messages independently over the open connection.<\/li>\n\n\n\n<li><strong>Close Connection<\/strong>: Either side can close the connection, ending the communication session.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Example WebSocket Code in JavaScript<\/h3>\n\n\n\n<p>Here\u2019s a basic example of establishing a WebSocket connection and handling messages between the client and server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Open a new WebSocket connection\nconst socket = new WebSocket('ws:\/\/example.com\/socket');\n\n\/\/ Event handler for when the connection opens\nsocket.addEventListener('open', () =&gt; {\n    console.log(\"WebSocket connection opened.\");\n    socket.send('Hello Server!');\n});\n\n\/\/ Listen for messages from the server\nsocket.addEventListener('message', (event) =&gt; {\n    console.log('Message from server:', event.data);\n});\n\n\/\/ Handle connection errors\nsocket.addEventListener('error', (event) =&gt; {\n    console.error('WebSocket error:', event);\n});\n\n\/\/ Handle connection closure\nsocket.addEventListener('close', (event) =&gt; {\n    console.log(\"WebSocket connection closed:\", event);\n});<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Sending and Receiving JSON Data<\/h3>\n\n\n\n<p>WebSocket is frequently used to exchange JSON-formatted data, which allows structured information to be sent across the connection.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Sending JSON data\nconst message = { type: 'greeting', content: 'Hello, Server!' };\nsocket.send(JSON.stringify(message));\n\n\/\/ Receiving JSON data\nsocket.addEventListener('message', (event) =&gt; {\n    const data = JSON.parse(event.data);\n    console.log('Received JSON data:', data);\n});<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Use Cases for WebSocket<\/h3>\n\n\n\n<p>WebSocket\u2019s low latency and real-time capabilities make it suitable for various applications:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Chat Applications<\/strong>: WebSocket is ideal for sending and receiving instant messages without delay.<\/li>\n\n\n\n<li><strong>Online Games<\/strong>: Allows high-frequency data exchange between players and the server, enabling real-time game updates.<\/li>\n\n\n\n<li><strong>Stock Price Updates<\/strong>: Continuously pushes new price data to clients without refreshing.<\/li>\n\n\n\n<li><strong>Real-Time Notifications<\/strong>: Delivers alerts to users as soon as they occur.<\/li>\n\n\n\n<li><strong>WebRTC Communication (Peer-to-Peer)<\/strong>: Used as a signaling mechanism in setting up peer-to-peer connections in WebRTC, which is discussed below.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Using WebSocket in WebRTC Communication<\/h3>\n\n\n\n<p>WebRTC (Web Real-Time Communication) enables peer-to-peer audio, video, and data sharing directly between browsers. However, before peers can communicate directly, they must exchange information for setting up the connection, known as <strong>signaling<\/strong>. WebSocket serves as an effective channel for this signaling process by helping peers exchange data needed to establish the WebRTC connection.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Role of WebSocket in WebRTC Signaling<\/h4>\n\n\n\n<p>In the context of WebRTC, WebSocket is often used to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Exchange SDP (Session Description Protocol)<\/strong>: Each peer generates an SDP offer or answer that includes details like codecs, media types, and other connection parameters.<\/li>\n\n\n\n<li><strong>Share ICE (Interactive Connectivity Establishment) Candidates<\/strong>: Network information such as IP addresses and ports that help the peers connect directly.<\/li>\n<\/ol>\n\n\n\n<p>These signaling messages are exchanged via WebSocket to set up the WebRTC peer connection, after which the peers can communicate directly without the signaling server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step-by-Step Example of WebSocket for WebRTC Signaling<\/h3>\n\n\n\n<p>Below is a typical flow illustrating how WebSocket is used in setting up a WebRTC connection:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Initialize WebSocket and Create PeerConnection<\/h4>\n\n\n\n<p>Each peer (client) connects to a signaling server via WebSocket and initializes a WebRTC <code>RTCPeerConnection<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const signalingSocket = new WebSocket('ws:\/\/signaling-server.com');\nconst peerConnection = new RTCPeerConnection();\n\n\/\/ Handle WebSocket open event\nsignalingSocket.addEventListener('open', () =&gt; {\n    console.log('Connected to signaling server.');\n});<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2. Create an SDP Offer and Send via WebSocket<\/h4>\n\n\n\n<p>One peer (Peer A) initiates the connection by creating an SDP offer and sending it to the other peer via the WebSocket.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>peerConnection.createOffer().then((offer) =&gt; {\n    return peerConnection.setLocalDescription(offer);\n}).then(() =&gt; {\n    \/\/ Send the SDP offer to the other peer through WebSocket\n    signalingSocket.send(JSON.stringify({ type: 'offer', sdp: peerConnection.localDescription }));\n});<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">3. Listen for WebSocket Messages and Handle SDP\/ICE<\/h4>\n\n\n\n<p>When Peer B receives the offer, it creates an answer and sends it back through WebSocket. Both peers also send ICE candidates as they become available.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>signalingSocket.addEventListener('message', (event) =&gt; {\n    const message = JSON.parse(event.data);\n\n    if (message.type === 'offer') {\n        \/\/ Set the remote SDP from the offer and create an answer\n        peerConnection.setRemoteDescription(new RTCSessionDescription(message.sdp))\n            .then(() =&gt; peerConnection.createAnswer())\n            .then((answer) =&gt; peerConnection.setLocalDescription(answer))\n            .then(() =&gt; {\n                \/\/ Send the answer SDP back to Peer A\n                signalingSocket.send(JSON.stringify({ type: 'answer', sdp: peerConnection.localDescription }));\n            });\n    } else if (message.type === 'answer') {\n        \/\/ Set the remote SDP from the answer\n        peerConnection.setRemoteDescription(new RTCSessionDescription(message.sdp));\n    } else if (message.type === 'ice-candidate') {\n        \/\/ Add ICE candidate from the other peer\n        const candidate = new RTCIceCandidate(message.candidate);\n        peerConnection.addIceCandidate(candidate);\n    }\n});<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">4. Send and Receive ICE Candidates<\/h4>\n\n\n\n<p>Each peer will gather ICE candidates as it tries to establish a peer-to-peer connection. These candidates are shared through WebSocket.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>peerConnection.onicecandidate = (event) =&gt; {\n    if (event.candidate) {\n        signalingSocket.send(JSON.stringify({\n            type: 'ice-candidate',\n            candidate: event.candidate\n        }));\n    }\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">WebRTC with WebSocket: Summary<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WebSocket<\/strong> is used as a signaling channel in WebRTC to exchange control messages (SDP and ICE candidates).<\/li>\n\n\n\n<li><strong>SDP Offers and Answers<\/strong> are sent to describe session and connection parameters.<\/li>\n\n\n\n<li><strong>ICE Candidates<\/strong> are shared through WebSocket to help the peers discover paths to connect directly.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>WebSocket and WebRTC are powerful technologies that complement each other well. WebSocket handles the signaling phase in WebRTC, establishing the initial connection parameters and network information necessary for peer-to-peer communication. Once signaling is complete, WebRTC manages the direct media and data exchange. This combination allows for real-time, efficient, and low-latency communication in web applications, enabling features like video calls, online games, and collaborative tools.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A WebSocket connection is a communication protocol that provides a persistent, two-way connection between a client and a server<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[11],"tags":[],"class_list":["post-38","post","type-post","status-publish","format-standard","hentry","category-sip-over-webrtc"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What is a WebSocket Connection?<\/title>\n<meta name=\"description\" content=\"WebSocket connections explained in plain English \u2014 how they work, why they&#039;re used for real-time communication, and how Siperb uses them for SIP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is a WebSocket Connection?\" \/>\n<meta property=\"og:description\" content=\"WebSocket connections explained in plain English \u2014 how they work, why they&#039;re used for real-time communication, and how Siperb uses them for SIP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/\" \/>\n<meta property=\"og:site_name\" content=\"Siperb\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-07T16:23:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-12T19:03:51+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\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:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\"},\"headline\":\"What is a WebSocket Connection?\",\"datePublished\":\"2026-04-07T16:23:11+00:00\",\"dateModified\":\"2026-04-12T19:03:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/\"},\"wordCount\":786,\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"articleSection\":[\"SIP Over WebRTC\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/\",\"name\":\"What is a WebSocket Connection?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\"},\"datePublished\":\"2026-04-07T16:23:11+00:00\",\"dateModified\":\"2026-04-12T19:03:51+00:00\",\"description\":\"WebSocket connections explained in plain English \u2014 how they work, why they're used for real-time communication, and how Siperb uses them for SIP.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/what-is-a-websocket-connection\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is a WebSocket Connection?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\",\"name\":\"Siperb\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\",\"name\":\"SIPERB LTD\",\"alternateName\":\"SIPERB\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/MobilePromo.webp\",\"contentUrl\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/MobilePromo.webp\",\"width\":1200,\"height\":670,\"caption\":\"SIPERB LTD\"},\"image\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/localhost:8080\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is a WebSocket Connection?","description":"WebSocket connections explained in plain English \u2014 how they work, why they're used for real-time communication, and how Siperb uses them for SIP.","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:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/","og_locale":"en_US","og_type":"article","og_title":"What is a WebSocket Connection?","og_description":"WebSocket connections explained in plain English \u2014 how they work, why they're used for real-time communication, and how Siperb uses them for SIP.","og_url":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/","og_site_name":"Siperb","article_published_time":"2026-04-07T16:23:11+00:00","article_modified_time":"2026-04-12T19:03:51+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/#article","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/"},"author":{"name":"admin","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111"},"headline":"What is a WebSocket Connection?","datePublished":"2026-04-07T16:23:11+00:00","dateModified":"2026-04-12T19:03:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/"},"wordCount":786,"publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"articleSection":["SIP Over WebRTC"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/","url":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/","name":"What is a WebSocket Connection?","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/#website"},"datePublished":"2026-04-07T16:23:11+00:00","dateModified":"2026-04-12T19:03:51+00:00","description":"WebSocket connections explained in plain English \u2014 how they work, why they're used for real-time communication, and how Siperb uses them for SIP.","breadcrumb":{"@id":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.siperb.com\/kb\/what-is-a-websocket-connection\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.siperb.com\/kb\/"},{"@type":"ListItem","position":2,"name":"What is a WebSocket Connection?"}]},{"@type":"WebSite","@id":"https:\/\/www.siperb.com\/kb\/#website","url":"https:\/\/www.siperb.com\/kb\/","name":"Siperb","description":"","publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.siperb.com\/kb\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.siperb.com\/kb\/#organization","name":"SIPERB LTD","alternateName":"SIPERB","url":"https:\/\/www.siperb.com\/kb\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/logo\/image\/","url":"https:\/\/www.siperb.com\/kb\/wp-content\/uploads\/2024\/11\/MobilePromo.webp","contentUrl":"https:\/\/www.siperb.com\/kb\/wp-content\/uploads\/2024\/11\/MobilePromo.webp","width":1200,"height":670,"caption":"SIPERB LTD"},"image":{"@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/localhost:8080"]}]}},"_links":{"self":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":1,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"predecessor-version":[{"id":13697,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/38\/revisions\/13697"}],"wp:attachment":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}