{"id":15404,"date":"2018-11-27T16:55:58","date_gmt":"2018-11-27T18:55:58","guid":{"rendered":"https:\/\/king.host\/wiki\/?post_type=article&#038;p=15404"},"modified":"2021-08-24T14:34:20","modified_gmt":"2021-08-24T17:34:20","slug":"aplicacao-nodejs-socketio","status":"publish","type":"article","link":"https:\/\/king.host\/wiki\/artigo\/aplicacao-nodejs-socketio\/","title":{"rendered":"Deploy de aplica\u00e7\u00e3o nodejs com Socket.IO"},"content":{"rendered":"\n<p><em>Precisa realizar o Deploy de aplica\u00e7\u00e3o node.js com Socket.IO? Preparamos um guia completo de como realizar o Deploy da sua aplica\u00e7\u00e3o na KingHost.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Aplicacao_nodejs_com_SocketIO_%E2%80%93_O_que_e_necessario\"><\/span>Aplica\u00e7\u00e3o nodejs com Socket.IO &#8211; O que \u00e9 necess\u00e1rio?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Primeiramente, verifique os seguintes requisitos:<\/p>\n\n\n\n<ul><li>Uma aplica\u00e7\u00e3o node.js<\/li><li>Hospedagem Node.JS com Webserver Nginx<\/li><li><a href=\"https:\/\/king.host\/wiki\/artigo\/como-criar-uma-aplicacao-nodejs-no-painel-de-controle-kinghost\/\">Criar uma aplica\u00e7\u00e3o no painel de controle Kinghost<\/a><\/li><\/ul>\n\n\n\n<p>Assim sendo, a aplica\u00e7\u00e3o que ser\u00e1 utilizada neste guia est\u00e1 dispon\u00edvel no&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/gabrielpetry\/webchat\" target=\"_blank\">github.<\/a><\/p>\n\n\n\n<box-aviso>Obs: Se o seu <a rel=\"noopener noreferrer\" href=\"https:\/\/king.host\/wiki\/artigo\/planos-node-js-disponiveis-na-kinghost\/\" target=\"_blank\">plano Node.JS<\/a> n\u00e3o est\u00e1 configurado para uso com Webserver Nginx, entre contato com nosso suporte para uma migra\u00e7\u00e3o, <b>n\u00e3o h\u00e1 custos nesta opera\u00e7\u00e3o.<\/b><\/box-aviso>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Enviando_os_arquivos_para_o_FTP_do_dominio\"><\/span>Enviando os arquivos para o FTP do dom\u00ednio<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Para enviar os arquivos ao FTP do dom\u00ednio, pode ser utilizado qualquer m\u00e9todo como, por exemplo, <a rel=\"noopener noreferrer\" href=\"https:\/\/king.host\/wiki\/artigo\/acessar-ftp-via-filezilla\/\" target=\"_blank\">acessar o FTP atrav\u00e9s do programa Filezilla.<\/a><\/p>\n\n\n\n<p>Dessa forma, utilizarei o <a href=\"https:\/\/king.host\/wiki\/artigo\/como-acessar-o-ftp-do-meu-site-por-ssh\/\">acesso por SSH<\/a> e clone do reposit\u00f3rio utilizando o comando GIT.<\/p>\n\n\n\n<p>cd ~\/apps_nodejs<\/p>\n\n\n\n<p>git clone https:\/\/github.com\/gabrielpetry\/webchat.git<\/p>\n\n\n\n<p>Em seguida, ap\u00f3s clonar o reposit\u00f3rio deve ser criada uma estrutura similar a abaixo:<\/p>\n\n\n\n<p><br>??? package.json<br>??? README.md<br>??? server.js<br>??? index.html<\/p>\n\n\n\n<ul><li><strong>server.js, <\/strong>\u00e9 o arquivo com que inicia o servidor node.js e que mais tarde teremos que ajustar a porta dele.<\/li><li><strong>index.html, <\/strong>\u00e9 o arquivo inicial da nossa aplica\u00e7\u00e3o e faz a conex\u00e3o ao socket.<\/li><li><strong>package.json, <\/strong>\u00e9 o arquivo do reposit\u00f3rio, ele cont\u00e9m a informa\u00e7\u00e3o de quais depend\u00eancias precisam ser instaladas.<\/li><\/ul>\n\n\n\n<p>Essa aplica\u00e7\u00e3o \u00e9 uma estrutura m\u00ednima, de tal forma que somente funcionar\u00e1 quando tiver uma porta especificada na URL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Criando_a_aplicacao_nodejs_no_Painel_de_Controle\"><\/span>Criando a aplica\u00e7\u00e3o node.js no Painel de Controle<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Para que o deploy de uma aplica\u00e7\u00e3o nodejs com Socket.IO funcione na estrutura de hospedagem da KingHost \u00e9 necess\u00e1rio configurar uma aplica\u00e7\u00e3o no painel de controle, assim ser\u00e1 designada uma porta para a aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p>desse modo, para criar uma aplica\u00e7\u00e3o node.js no painel de controle e adquirir o acesso a uma porta pode ser seguido <a rel=\"noopener noreferrer\" href=\"https:\/\/king.host\/wiki\/artigo\/como-criar-uma-aplicacao-nodejs-no-painel-de-controle-kinghost\/\" target=\"_blank\">esse guia dispon\u00edvel aqui na Central de Ajuda<\/a>.<\/p>\n\n\n\n<p>Al\u00e9m disso, \u00e9 importante configurar corretamente o caminho para o arquivo <strong>server.js,<\/strong> caso contr\u00e1rio a aplica\u00e7\u00e3o n\u00e3o funcionar\u00e1 corretamente. J\u00e1 que a nossa aplica\u00e7\u00e3o precisa que a porta seja informada, vamos desmarcar as op\u00e7\u00f5es de habilitar o acesso web.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img data-original=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/criando_app.png\" alt=\"Aplica\u00e7\u00e3o nodejs com Socket.IO\" class=\"wp-image-15444\"\/><\/figure><\/div>\n\n\n\n<p>Em seguida, ap\u00f3s salvar a aplica\u00e7\u00e3o, ser\u00e1 informada a porta de conex\u00e3o que iremos utilizar.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"718\" height=\"232\" data-src=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/app_criada.png\" alt=\"Aplica\u00e7\u00e3o nodejs com Socket.IO\" class=\"wp-image-15468 lazyload\" data-srcset=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/app_criada.png 718w, https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/app_criada-300x97.png 300w\" data-sizes=\"(max-width: 718px) 100vw, 718px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 718px; --smush-placeholder-aspect-ratio: 718\/232;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"718\" height=\"232\" src=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/app_criada.png\" alt=\"Aplica\u00e7\u00e3o nodejs com Socket.IO\" class=\"wp-image-15468\" srcset=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/app_criada.png 718w, https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/app_criada-300x97.png 300w\" sizes=\"(max-width: 718px) 100vw, 718px\" \/><\/noscript><\/figure><\/div>\n\n\n\n<p>Portanto, como pode ser verificado na imagem acima, para a nossa aplica\u00e7\u00e3o foi determinada a porta <strong>21159.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adequando_a_aplicacao_ao_ambiente\"><\/span>Adequando a aplica\u00e7\u00e3o ao ambiente<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Agora que possu\u00edmos uma aplica\u00e7\u00e3o configurada no painel e uma porta dedicada no servidor, \u00e9 preciso ajustar a programa\u00e7\u00e3o para usar aquela porta.<\/p>\n\n\n\n<p>Como nossa aplica\u00e7\u00e3o \u00e9 pequena, o \u00fanico ajuste necess\u00e1rio \u00e9 alterar a porta da aplica\u00e7\u00e3o, que no nosso caso \u00e9 configurada no arquivo <strong>server.js.<\/strong><\/p>\n\n\n\n<p>Agora ser\u00e1 preciso instalar as depend\u00eancias da aplica\u00e7\u00e3o. Como o package.json j\u00e1 est\u00e1 configurado basta executar o comando <strong>npm install<\/strong> na pasta da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<box-info class=\"wp-block-k-box-info\">A partir desse ponto utilizamos um terminal SSH para executar os comandos. Para saber como acessar o FTP do seu site via SSH, <a href=\"https:\/\/king.host\/wiki\/artigo\/como-acessar-o-ftp-do-meu-site-por-ssh\/\">acesse esse artigo<\/a> \ud83d\ude09<\/box-info>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tudo_configurado_e_agora\"><\/span>Tudo configurado, e agora?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Agora que est\u00e1 tudo configurado, podemos utilizar o pm2 para inciar o servidor node.js com o comando <strong>pm2 start server.js.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"232\" data-src=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/pm2_list.png\" alt=\"Aplica\u00e7\u00e3o nodejs com Socket.IO\" class=\"wp-image-15446 lazyload\" data-srcset=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/pm2_list.png 700w, https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/pm2_list-300x99.png 300w\" data-sizes=\"(max-width: 700px) 100vw, 700px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 700px; --smush-placeholder-aspect-ratio: 700\/232;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"232\" src=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/pm2_list.png\" alt=\"Aplica\u00e7\u00e3o nodejs com Socket.IO\" class=\"wp-image-15446\" srcset=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/pm2_list.png 700w, https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/pm2_list-300x99.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/noscript><\/figure><\/div>\n\n\n\n<p>Agora basta acessar a url informando a porta e a nossa aplica\u00e7\u00e3o deve abrir sem nenhum problema, funcionando perfeitamente.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" data-src=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/dua-janelas-1.png\" alt=\"Janelas conversando\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1886px; --smush-placeholder-aspect-ratio: 1886\/508;\" \/><noscript><img decoding=\"async\" src=\"https:\/\/king.host\/wiki\/wp-content\/uploads\/2018\/11\/dua-janelas-1.png\" alt=\"Janelas conversando\"\/><\/noscript><\/figure><\/div>\n\n\n\n<p>Pronto, a nossa aplica\u00e7\u00e3o foi configurada no servidor e est\u00e1 funcionando perfeitamente, qualquer pessoa que acessar o endere\u00e7o da nossa app poder\u00e1 utilizar todas as funcionalidades que o node.js permite.<\/p>\n\n\n\n<p>Para concluir, o processo de Deploy de uma aplica\u00e7\u00e3o node.js depende de:<\/p>\n\n\n\n<ol><li>Enviar os arquivos da aplica\u00e7\u00e3o para o servidor web, pode ser atrav\u00e9s do clone de um reposit\u00f3rio, enviar por FTP ou <a href=\"https:\/\/king.host\/wiki\/artigo\/como-integrar-o-github-ao-painel-de-controle-da-kinghost\/\">atrav\u00e9s da ferramenta GIT no painel de controle.<\/a><\/li><li>Instalar as depend\u00eancias da aplica\u00e7\u00e3o atrav\u00e9s do NPM.<\/li><li>Configurar a porta da aplica\u00e7\u00e3o no script que inicia o servidor node.js.<\/li><\/ol>\n","protected":false},"author":9,"featured_media":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","article-category":[181],"article-tag":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/15404"}],"collection":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/comments?post=15404"}],"version-history":[{"count":0,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/15404\/revisions"}],"wp:attachment":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/media?parent=15404"}],"wp:term":[{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article-category?post=15404"},{"taxonomy":"article-tag","embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article-tag?post=15404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}