{"id":6102,"date":"2026-04-30T13:40:05","date_gmt":"2026-04-30T16:40:05","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=6102"},"modified":"2026-04-30T13:47:50","modified_gmt":"2026-04-30T16:47:50","slug":"ia-em-tempo-real-com-websockets-e-rubixml","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/","title":{"rendered":"IA em Tempo Real com Websockets e RubixML"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 6<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\">IA em Tempo Real com Websockets e RubixML: Parab\u00e9ns por chegar at\u00e9 aqui! J\u00e1 ensinamos sua IA a pensar, enxergar e at\u00e9 a aprender com recompensas. Mas, no mundo din\u00e2mico do desenvolvimento web, a intelig\u00eancia que demora para responder \u00e9 intelig\u00eancia perdida. No vig\u00e9simo terceiro artigo da nossa <strong>Masterclass de Rubix ML<\/strong>, vamos quebrar a barreira da lat\u00eancia.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Como desenvolvedor web s\u00eanior e especialista em <strong>Rubix ML<\/strong>, vou te mostrar como unir o poder preditivo do PHP com a comunica\u00e7\u00e3o bidirecional instant\u00e2nea dos <strong>Websockets<\/strong>. Vamos transformar o seu blog e o portal de vagas em sistemas vivos, que reagem a eventos no exato milissegundo em que eles acontecem. Prepare-se: a partir de hoje, seu software n\u00e3o apenas processa dados, ele &#8220;vibra&#8221; em tempo real.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">IA em Tempo Real: Integra\u00e7\u00e3o de Modelos Preditivos com Websockets<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1-los atrav\u00e9s de um modelo de Machine Learning e entregar uma resposta instant\u00e2nea sem que o usu\u00e1rio precise recarregar a p\u00e1gina. No ecossistema PHP tradicional, estamos acostumados ao ciclo Request-Response. No entanto, para aplica\u00e7\u00f5es de elite, esse ciclo \u00e9 lento demais.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ao integrarmos o <strong>Rubix ML<\/strong> com <strong>Websockets<\/strong> (usando bibliotecas como Ratchet ou Swoole), criamos um canal aberto onde as predi\u00e7\u00f5es fluem como uma conversa cont\u00ednua.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. O Fim do &#8220;Loading&#8221;: Por que Websockets + ML?<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Em qualquer polo tecnol\u00f3gico, a experi\u00eancia do usu\u00e1rio (UX) \u00e9 o que define o sucesso de um SaaS. Imagine as seguintes situa\u00e7\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Recrutamento e Sele\u00e7\u00e3o:<\/strong> Um candidato come\u00e7a a digitar suas habilidades e, em tempo real, uma barra lateral sugere vagas compat\u00edveis antes mesmo de ele clicar em &#8220;Salvar&#8221;.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>No seu Blog:<\/strong> Um sistema de modera\u00e7\u00e3o que detecta linguagem t\u00f3xica enquanto o usu\u00e1rio ainda est\u00e1 escrevendo o coment\u00e1rio, exibindo um alerta preventivo.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Seguran\u00e7a:<\/strong> Um detector de anomalias (como vimos no Artigo 14) que encerra uma sess\u00e3o suspeita no exato momento em que o padr\u00e3o de cliques foge do normal.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Os Websockets permitem que o servidor &#8220;empurre&#8221; (push) a intelig\u00eancia para o cliente, eliminando a necessidade de chamadas AJAX repetitivas que sobrecarregam sua infraestrutura na Hostinger.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. A Arquitetura do Servidor Preditivo<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para rodar <strong>IA em tempo real<\/strong> com PHP, precisamos de um servidor de vida longa (Long-running process). O PHP n\u00e3o pode &#8220;morrer&#8221; ao final da execu\u00e7\u00e3o.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Os Componentes:<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>O Modelo Persistido:<\/strong> Seu arquivo <code>.rbx<\/code> treinado e otimizado.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>O Servidor Websocket:<\/strong> Um script PHP rodando via CLI que mant\u00e9m as conex\u00f5es ativas.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>O Loop de Eventos:<\/strong> Onde cada mensagem recebida do cliente \u00e9 passada pelo modelo do Rubix ML.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. M\u00e3o na Massa: Criando um Classificador de Inten\u00e7\u00e3o em Tempo Real<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Vamos construir um exemplo pr\u00e1tico: um sistema que analisa a &#8220;urg\u00eancia&#8221; de uma mensagem de suporte no sistema de recrutamento e sele\u00e7\u00e3o enquanto ela \u00e9 digitada.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Passo 1: O Servidor de Websocket com IA<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Utilizaremos um conceito simplificado para ilustrar como o modelo interage com a conex\u00e3o.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>use Ratchet\\MessageComponentInterface;\nuse Ratchet\\ConnectionInterface;\nuse Rubix\\ML\\PersistentModel;\nuse Rubix\\ML\\Persisters\\Filesystem;\n\nclass PredictorServer implements MessageComponentInterface {\n    protected $model;\n    protected $clients;\n\n    public function __construct() {\n        $this-&gt;clients = new \\SplObjectStorage;\n        \/\/ Carregamos o modelo UMA VEZ na mem\u00f3ria para m\u00e1xima velocidade\n        $this-&gt;model = PersistentModel::load(new Filesystem('modelo_urgencia.rbx'));\n        echo \"C\u00e9rebro da IA carregado e pronto para o Tempo Real!\\n\";\n    }\n\n    public function onOpen(ConnectionInterface $conn) {\n        $this-&gt;clients-&gt;attach($conn);\n    }\n\n    public function onMessage(ConnectionInterface $from, $msg) {\n        \/\/ $msg cont\u00e9m o texto que o usu\u00e1rio est\u00e1 digitando\n        $data = json_decode($msg, true);\n        \n        if (isset($data&#91;'text'])) {\n            \/\/ Realizamos a predi\u00e7\u00e3o instant\u00e2nea\n            $prediction = $this-&gt;model-&gt;predictSample(&#91;$data&#91;'text']]);\n            \n            \/\/ Enviamos a resposta de volta apenas para aquele usu\u00e1rio\n            $from-&gt;send(json_encode(&#91;\n                'prediction' =&gt; $prediction,\n                'timestamp' =&gt; microtime(true)\n            ]));\n        }\n    }\n\n    public function onClose(ConnectionInterface $conn) { $this-&gt;clients-&gt;detach($conn); }\n    public function onError(ConnectionInterface $conn, \\Exception $e) { $conn-&gt;close(); }\n}\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Passo 2: O Front-end (JavaScript)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No navegador do usu\u00e1rio, conectamos ao nosso servidor PHP:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">JavaScript<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>const socket = new WebSocket('ws:\/\/seu-servidor');\n\ndocument.getElementById('input-mensagem').addEventListener('input', (e) => {\n    socket.send(json_encode({ text: e.target.value }));\n});\n\nsocket.onmessage = function(event) {\n    const response = JSON.parse(event.data);\n    atualizarInterface(response.prediction); \/\/ Ex: Muda a cor do bot\u00e3o para vermelho se for urgente\n};\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. Otimiza\u00e7\u00e3o de Performance: O Segredo da Baixa Lat\u00eancia<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para que a <strong>IA em tempo real<\/strong> funcione na pr\u00e1tica, cada milissegundo conta. Aqui est\u00e3o as estrat\u00e9gias de especialista:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Pr\u00e9-carregamento:<\/strong> Jamais carregue o modelo (<code>PersistentModel::load<\/code>) dentro da fun\u00e7\u00e3o <code>onMessage<\/code>. Carregue-o no construtor do servidor para que ele resida na mem\u00f3ria RAM.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Extens\u00e3o Tensor e Swoole:<\/strong> O uso do Swoole em vez de Ratchet pode oferecer uma performance ainda maior devido ao seu modelo de corrotinas. E, claro, a extens\u00e3o Tensor \u00e9 vital para que a predi\u00e7\u00e3o do Rubix ML seja feita em fra\u00e7\u00f5es de milissegundo.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Debouncing no Front-end:<\/strong> N\u00e3o envie cada tecla digitada. Use um <em>debounce<\/em> de 300ms para enviar o texto apenas quando o usu\u00e1rio fizer uma pequena pausa na digita\u00e7\u00e3o.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">5. Aplicabilidade: O &#8220;Chatbot&#8221; que Antecipa D\u00favidas<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No seu portal de vagas, voc\u00ea pode implementar um sistema de ajuda onde a IA analisa o que o usu\u00e1rio est\u00e1 perguntando e j\u00e1 &#8220;empurra&#8221; os links de tutoriais antes mesmo de ele clicar em &#8220;Enviar&#8221;.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Outra aplica\u00e7\u00e3o fant\u00e1stica \u00e9 o <strong>Live Ranking de Candidatos<\/strong>. Conforme um recrutador ajusta os filtros de uma vaga, o Websocket envia para a tela dele a nova pontua\u00e7\u00e3o dos candidatos em tempo real, sem que ele precise dar F5 na p\u00e1gina. Isso cria uma sensa\u00e7\u00e3o de fluidez e modernidade que coloca o seu projeto anos-luz \u00e0 frente da concorr\u00eancia.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">6. Desafios: Gerenciamento de Estado e Conex\u00f5es<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Trabalhar com Websockets e ML traz desafios \u00fanicos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Mem\u00f3ria RAM:<\/strong> Cada modelo carregado ocupa espa\u00e7o. Se voc\u00ea tiver muitos modelos diferentes, monitore o consumo do seu VPS na Hostinger.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Seguran\u00e7a:<\/strong> Proteja seu endpoint Websocket com tokens JWT para garantir que apenas usu\u00e1rios autenticados acessem sua IA.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Escalabilidade:<\/strong> Se voc\u00ea tiver milhares de usu\u00e1rios simult\u00e2neos, precisar\u00e1 de um Load Balancer (como Nginx) capaz de gerenciar conex\u00f5es persistentes.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Conclus\u00e3o: O Futuro do PHP \u00e9 Instant\u00e2neo<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">IA em Tempo Real com Websockets e RubixML: Integrar <strong>Websockets com Rubix ML<\/strong> \u00e9 o passo final para transformar sua aplica\u00e7\u00e3o de uma ferramenta passiva em um assistente proativo. Aprendemos que o PHP \u00e9 perfeitamente capaz de sustentar conex\u00f5es de longa dura\u00e7\u00e3o e entregar intelig\u00eancia em milissegundos, desafiando a percep\u00e7\u00e3o comum sobre a linguagem.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Seja protegendo o seu blog com modera\u00e7\u00e3o em tempo real ou revolucionando a experi\u00eancia de busca de vagas ou candidatos, a comunica\u00e7\u00e3o bidirecional com IA \u00e9 a fronteira final da interatividade. Voc\u00ea n\u00e3o est\u00e1 apenas entregando dados; voc\u00ea est\u00e1 entregando respostas no momento em que as perguntas nascem.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No pr\u00f3ximo artigo, vamos mergulhar em uma estrutura de dados fascinante: <strong>&#8220;An\u00e1lise de Grafos: Criando sistemas de recomenda\u00e7\u00e3o baseados em conex\u00f5es sociais e profissionais.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Mas antes de dominar o Rubix ML, se este for o seu caso, entendemos que toda jornada tem um in\u00edcio. Vamos entender quais s\u00e3o os conhecimentos b\u00e1sicos necess\u00e1rios para aproveitar ao m\u00e1ximo esta poderosa biblioteca. Para iniciar seus estudos do Rubix ML, voc\u00ea precisar\u00e1 dominar as seguintes tecnologias e\/ou framework:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/php\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" alt=\"Capa Curso PHP\" class=\"wp-image-2835\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">PHP<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/sql\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp\" alt=\"SQL\" class=\"wp-image-942\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">SQL<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/laravel\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp\" alt=\"Laravel\" class=\"wp-image-1642\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">Laravel<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/cakephp\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png\" alt=\"CakePHP\" class=\"wp-image-5819\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">CakePHP<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Dica de Especialista:<\/strong> Se voc\u00ea estiver usando o CakePHP, voc\u00ea pode integrar o servidor de Websockets como um Command (Shell) de longa dura\u00e7\u00e3o. Isso permite que voc\u00ea acesse seus Models e o ORM do Cake dentro do loop do Websocket de forma elegante!<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 6<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>IA em Tempo Real com Websockets e RubixML: Parab\u00e9ns por chegar at\u00e9 aqui! J\u00e1 ensinamos&#8230;<\/p>\n","protected":false},"author":1,"featured_media":5935,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[98],"tags":[],"class_list":["post-6102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rubix-ml","wpcat-98-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>IA em Tempo Real com Websockets e RubixML - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IA em Tempo Real com Websockets e RubixML - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-30T16:40:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-30T16:47:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"IA em Tempo Real com Websockets e RubixML\",\"datePublished\":\"2026-04-30T16:40:05+00:00\",\"dateModified\":\"2026-04-30T16:47:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/\"},\"wordCount\":1140,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"articleSection\":[\"Rubix ML\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/\",\"name\":\"IA em Tempo Real com Websockets e RubixML - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"datePublished\":\"2026-04-30T16:40:05+00:00\",\"dateModified\":\"2026-04-30T16:47:50+00:00\",\"description\":\"IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"width\":758,\"height\":426,\"caption\":\"Rubix ML\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/ia-em-tempo-real-com-websockets-e-rubixml\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IA em Tempo Real com Websockets e RubixML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"IA em Tempo Real com Websockets e RubixML - BLOG THIAGO ROSSI","description":"IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1...","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:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/","og_locale":"pt_BR","og_type":"article","og_title":"IA em Tempo Real com Websockets e RubixML - BLOG THIAGO ROSSI","og_description":"IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1...","og_url":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2026-04-30T16:40:05+00:00","article_modified_time":"2026-04-30T16:47:50+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","type":"image\/png"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"IA em Tempo Real com Websockets e RubixML","datePublished":"2026-04-30T16:40:05+00:00","dateModified":"2026-04-30T16:47:50+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/"},"wordCount":1140,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","articleSection":["Rubix ML"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/","url":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/","name":"IA em Tempo Real com Websockets e RubixML - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","datePublished":"2026-04-30T16:40:05+00:00","dateModified":"2026-04-30T16:47:50+00:00","description":"IA em Tempo Real com Websockets e RubixML: A Intelig\u00eancia Artificial em tempo real \u00e9 a capacidade de um sistema capturar dados, process\u00e1...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","width":758,"height":426,"caption":"Rubix ML"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/ia-em-tempo-real-com-websockets-e-rubixml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"IA em Tempo Real com Websockets e RubixML"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/6102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=6102"}],"version-history":[{"count":6,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/6102\/revisions"}],"predecessor-version":[{"id":6108,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/6102\/revisions\/6108"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/5935"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=6102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=6102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=6102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}