{"id":36787,"date":"2020-02-16T11:17:16","date_gmt":"2020-02-16T05:47:16","guid":{"rendered":"https:\/\/www.oneclickitsolution.com\/blog\/?p=36787"},"modified":"2024-09-06T11:41:21","modified_gmt":"2024-09-06T06:11:21","slug":"laravel-websocket-pusher-api-replacement","status":"publish","type":"post","link":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement","title":{"rendered":"Laravel WebSocket | Pusher API Replacement"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-what-is-websocket\"><strong>What is WebSocket?<\/strong><\/h2>\n\n\n\n<p>WebSocket connection is a continuous connection between a browser and the server.<\/p>\n\n\n\n<p>It provides a bidirectional communication: the server can send messages to the browser and the browser\u2013 the client can respond back via an equivalent connection.<\/p>\n\n\n\n<p>This differs from regular Ajax, which is single one-way communication: only the client can ask stuff from the server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-do-we-need-websocket\"><strong>Why do we need WebSocket?<\/strong><\/h2>\n\n\n\n<p>Because PHP itself does not support WebSocket, We need a layer of indirection to send \u201cserver\u201d data to the \u201cclient\u201d. In other words, real-time communication can be roughly divided into two steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Laravel -&gt; Indirect Layer<\/li>\n\n\n\n<li>Indirect Layer -&gt; (via WebSocket) -&gt; Client<\/li>\n<\/ol>\n\n\n\n<p>It is built using ratchet PHP library<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-does-websocket-works\"><strong>How does WebSocket Works?<\/strong><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/data_structure.png\" alt=\"data_structure\" class=\"wp-image-36878\"\/><\/figure><\/div>\n\n\n<p>When you start the start a Ratchet server that starts listing for connections<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-features-of-websocket\"><strong>Features of WebSocket:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Real-Time apps<\/strong>\n<ul class=\"wp-block-list\">\n<li>Chat application<\/li>\n\n\n\n<li>E-commerce application<\/li>\n\n\n\n<li>Videoconference applications<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Pusher Replacement<\/strong><\/li>\n\n\n\n<li><strong>Persistent connection<\/strong><\/li>\n\n\n\n<li><strong>Easy Customization options<\/strong><\/li>\n\n\n\n<li><strong>Debugging dashboard<\/strong><\/li>\n\n\n\n<li><strong>Integrated WebSocket and HTTP Server<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-requirements\"><strong>Requirements:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP &gt;= 7.1.3<\/li>\n\n\n\n<li><a href=\"https:\/\/laravel.com\/docs\/5.7\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel &gt;= 5.7<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-guide-how-to-install\"><strong>Guide -How to Install:<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install Laravel WebSockets &#8211; <\/strong>composer require beyondcode\/laravel-websockets<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Publish the migration file &#8211; <\/strong>php artisan vendor:publish &#8211;provider=&#8221;BeyondCode\\LaravelWebSockets\\WebSocketsServiceProvider&#8221; \u2013tag=&#8221;migrations&#8221;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Run the migrations- <\/strong>php artisan migrate<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>&nbsp;Publish the WebSocket configuration file &#8211; <\/strong>php artisan vendor:publish &#8211;provider=&#8221;BeyondCode\\LaravelWebSockets\\WebSocketsServiceProvider&#8221; \u2013tag=&#8221;config&#8221;<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-database\"><strong>Database:<\/strong><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/websockets_statistics_entries.png\" alt=\"websockets_statistics_entries\" class=\"wp-image-36799\"\/><\/figure><\/div>\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Table : &nbsp;&nbsp;&nbsp;&nbsp;websockets_statistics_entries<\/strong><strong>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<\/strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-table-messages\"><strong>Table<\/strong> : M<strong>essages<\/strong><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/messages.png\" alt=\"messages\" class=\"wp-image-36800\"\/><\/figure><\/div>\n\n\n<p><b>Install the official Pusher PHP SDK<\/b><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">composer require pusher\/pusher-php-server \"~3.0\"<\/code><\/pre>\n\n\n\n<p><b>Change broadcast driver in .env file<\/b><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">BROADCAST_DRIVER=pusher<\/code><\/pre>\n\n\n\n<p><b>In the config\/app.php file uncomment<\/b><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">App\\Providers\\BroadcastServiceProvider::class,<\/code><\/pre>\n\n\n\n<p><b>Pusher Configuration<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The package will use the pusher driver, but we don&#8217;t actually want to use Pusher. Therefore we add our own host and port configuration to &#8216;<\/span><b>pusher<\/b><span style=\"font-weight: 400;\">&#8216; section in <\/span><b>config\/broadcasting.php<\/b><\/p>\n\n\n\n<p><b><strong>config\/broadcasting.php<\/strong><\/b><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">'pusher' =&gt; [\n    'driver' =&gt; 'pusher',\n    'key' =&gt; env('PUSHER_APP_KEY'),\n    'secret' =&gt; env('PUSHER_APP_SECRET'), \n    'app_id' =&gt; env('PUSHER_APP_ID'),\n    'options' =&gt; [\n        'cluster' =&gt; env('PUSHER_APP_CLUSTER'),\n        'encrypted' =&gt; true,\n        'host' =&gt; '127.0.0.1',\n        'port' =&gt; 6001,\n        'scheme' =&gt; 'http'\n    ],\n],<\/code><\/pre>\n\n\n\n<p><span style=\"font-weight: 400;\">Laravel WebSockets package comes with individual Pusher API implementation,<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">we need to notify Laravel to send the events to our own server.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Also Change in<\/span><b> .env file <\/b><span style=\"font-weight: 400;\">beacuse we are not using pusher<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">PUSHER_APP_ID=testapp<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">PUSHER_APP_SECRET=websocketkey<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">PUSHER_APP_SECRET=somethingsecret<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-configuring-websocket-apps\"><strong>Configuring WebSocket Apps<\/strong><strong>&nbsp;<\/strong><\/h3>\n\n\n\n<p><b>&#8211; config\/websockets.php<\/b><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">'apps' =&gt; [\n    [\n        'id' =&gt; env('PUSHER_APP_ID'),\n        'name' =&gt; env('APP_NAME'),\n        'key' =&gt; env('PUSHER_APP_KEY'), \n        'secret' =&gt; env('PUSHER_APP_SECRET'), \n        'enable_client_messages' =&gt; true, \n        'enable_statistics' =&gt; true,\n    ],\n],<\/code><\/pre>\n\n\n\n<p>you can host separately from your current Laravel application server<br> we can add mutiple application with one Laravel WebSocket server<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-laravel-echo\"><strong>Laravel Echo<\/strong><\/h3>\n\n\n\n<p><b>npm<\/b><span style=\"font-weight: 400;\"> install \u2013save laravel-echo pusher-js<\/span><\/p>\n\n\n\n<p><b>Uncommnet<\/b><span style=\"font-weight: 400;\"> the laravel-echo configuration from <\/span><b>Resources\/js\/bootstrap.js<\/b><\/p>\n\n\n\n<p><b>wsHost <\/b><span style=\"font-weight: 400;\">and <\/span><b>wsPort <\/b><span style=\"font-weight: 400;\">point them to your <\/span>L<span style=\"font-weight: 400;\">aravel WebSocket server host and port.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">\/**\n* Echo exposes an expressive API for subscribing to channels and listening\n* for events that are broadcast by Laravel. Echo and event broadcasting \n* allows your team to easily build robust real-time web applications.\n*\/\n\nimport Echo from 'laravel-echo'\n\nwindow.Pusher = require('pusher-js');\n\nwindow.Echo = new Echo({\n    broadcaster: 'pusher',\n    key: process.env.MIX_PUSHER_APP_KEY, \n    wsHost: window.location.hostname, \n    wsPort: 6001,\n    disableStats: true,\n});<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-starting-the-websocket-server\"><strong>Starting the WebSocket Server<\/strong><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">php artisan <\/span><b>websockets:serve<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">php artisan websockets:serve &#8212;<\/span><b>port=3030<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">php artisan websockets:serve &#8212;<\/span><b>host=127.0.0.1<\/b><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-dashboard\"><strong>Dashboard<\/strong><strong>&nbsp;<\/strong><\/h3>\n\n\n\n<p>Websocket package dashboard is like pusher&#8217;s debug console dashboard. Default Root path of dashboard demo app is \/laravel-websockets which is automatically accessible.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/Dashboard.png\" alt=\"Dashboard\" class=\"wp-image-36804\"\/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-statistics\"><strong>Statistics<\/strong><\/h3>\n\n\n\n<p>This package comes with different statistic solutions. That will give you the current status of your WebSocket server.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Realtime Statistics<\/li>\n\n\n\n<li>All Event Details<\/li>\n<\/ul>\n\n\n\n<p><b>http:\/\/localhost:8000\/laravel-websockets<\/b><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The <\/span><b>Laravel WebSockets package <\/b><span style=\"font-weight: 400;\">use a pusher key and app id but this package use own server to send and received request that\u2019s why this called pusher replacement package.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is WebSocket? WebSocket connection is a continuous connection between a browser and the server. It provides a bidirectional communication: the server can send messages to the browser and the browser\u2013 the client can respond back via an equivalent connection. This differs from regular Ajax, which is single one-way communication: only the client can ask &hellip;<\/p>\n","protected":false},"author":1,"featured_media":57511,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[784],"tags":[812],"class_list":["post-36787","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-application","tag-website-development-solution-provider-company"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v24.8.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Laravel WebSocket Pusher API Replacement<\/title>\n<meta name=\"description\" content=\"Checkout Laravel websocket Pusher API replacement, why we need websocket, how to install, what is websocket, pusher replacement, etc.\" \/>\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.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel WebSocket Pusher API Replacement\" \/>\n<meta property=\"og:description\" content=\"Checkout Laravel websocket Pusher API replacement, why we need websocket, how to install, what is websocket, pusher replacement, etc.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement\" \/>\n<meta property=\"og:site_name\" content=\"OneClick IT Consultancy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/oneclickconsultancy\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-16T05:47:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-06T06:11:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/How-to-Setup-Laravel-WebSocket-with-Pusher-API-Replacement.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"OneClick IT Consultancy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OneclickIT\" \/>\n<meta name=\"twitter:site\" content=\"@OneclickIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"OneClick IT Consultancy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Laravel WebSocket Pusher API Replacement","description":"Checkout Laravel websocket Pusher API replacement, why we need websocket, how to install, what is websocket, pusher replacement, etc.","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.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement","og_locale":"en_US","og_type":"article","og_title":"Laravel WebSocket Pusher API Replacement","og_description":"Checkout Laravel websocket Pusher API replacement, why we need websocket, how to install, what is websocket, pusher replacement, etc.","og_url":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement","og_site_name":"OneClick IT Consultancy","article_publisher":"https:\/\/www.facebook.com\/oneclickconsultancy","article_published_time":"2020-02-16T05:47:16+00:00","article_modified_time":"2024-09-06T06:11:21+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/How-to-Setup-Laravel-WebSocket-with-Pusher-API-Replacement.png","type":"image\/png"}],"author":"OneClick IT Consultancy","twitter_card":"summary_large_image","twitter_creator":"@OneclickIT","twitter_site":"@OneclickIT","twitter_misc":{"Written by":"OneClick IT Consultancy","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#article","isPartOf":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement"},"author":{"name":"OneClick IT Consultancy","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/person\/c2616c0a433427a79a96fe5ca2b34ec3"},"headline":"Laravel WebSocket | Pusher API Replacement","datePublished":"2020-02-16T05:47:16+00:00","dateModified":"2024-09-06T06:11:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement"},"wordCount":529,"publisher":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#primaryimage"},"thumbnailUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/How-to-Setup-Laravel-WebSocket-with-Pusher-API-Replacement.png","keywords":["Website Development Solution"],"articleSection":["Web Application"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement","url":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement","name":"Laravel WebSocket Pusher API Replacement","isPartOf":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#primaryimage"},"image":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#primaryimage"},"thumbnailUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/How-to-Setup-Laravel-WebSocket-with-Pusher-API-Replacement.png","datePublished":"2020-02-16T05:47:16+00:00","dateModified":"2024-09-06T06:11:21+00:00","description":"Checkout Laravel websocket Pusher API replacement, why we need websocket, how to install, what is websocket, pusher replacement, etc.","breadcrumb":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#primaryimage","url":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/How-to-Setup-Laravel-WebSocket-with-Pusher-API-Replacement.png","contentUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2020\/02\/How-to-Setup-Laravel-WebSocket-with-Pusher-API-Replacement.png","width":1200,"height":628,"caption":"How to Setup Laravel WebSocket with Pusher API Replacement"},{"@type":"BreadcrumbList","@id":"https:\/\/www.oneclickitsolution.com\/blog\/laravel-websocket-pusher-api-replacement#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.oneclickitsolution.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel WebSocket | Pusher API Replacement"}]},{"@type":"WebSite","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#website","url":"https:\/\/www.oneclickitsolution.com\/blog\/","name":"OneClick IT Consultancy","description":"We Build Brands from Ideas","publisher":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#organization"},"alternateName":"OneClick IT Solution","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.oneclickitsolution.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#organization","name":"OneClick IT Consultancy","alternateName":"OneClick IT Solution","url":"https:\/\/www.oneclickitsolution.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/10\/oneclick-official-logo.png","contentUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/10\/oneclick-official-logo.png","width":100,"height":100,"caption":"OneClick IT Consultancy"},"image":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/oneclickconsultancy","https:\/\/x.com\/OneclickIT","https:\/\/www.instagram.com\/oneclick.it.consultancy\/","https:\/\/www.linkedin.com\/company\/one-click-it-consultancy\/","https:\/\/www.pinterest.com\/oneclickitconsultancy\/","https:\/\/www.youtube.com\/channel\/UCsEG6aiwOwvYrcZxMoP5xjg","https:\/\/oneclickit.tumblr.com\/","https:\/\/dribbble.com\/oneclickitconsultancy"]},{"@type":"Person","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/person\/c2616c0a433427a79a96fe5ca2b34ec3","name":"OneClick IT Consultancy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8169ffe1b63da548d77fb666e94f1aba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8169ffe1b63da548d77fb666e94f1aba?s=96&d=mm&r=g","caption":"OneClick IT Consultancy"},"description":"OneClick IT Consultancy is the best custom software development company based in India &amp; USA with expertise in BLE, travel, mobile, and web development. With nearly a decade\u2019s experience, we use best practices and development standards to deliver high-performance applications, focused on the user experience.","sameAs":["https:\/\/www.oneclickitsolution.com\/blog\/"],"jobTitle":"Founder","url":"https:\/\/www.oneclickitsolution.com\/blog\/author\/oneclick"}]}},"_links":{"self":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/posts\/36787"}],"collection":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/comments?post=36787"}],"version-history":[{"count":0,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/posts\/36787\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/media\/57511"}],"wp:attachment":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/media?parent=36787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/categories?post=36787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/tags?post=36787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}