<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Websockets - Etiqueta - Misael Zapata</title><link>https://misael.org/es/tags/websockets/</link><description>Websockets - Etiqueta - Misael Zapata</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://misael.org/es/tags/websockets/" rel="self" type="application/rss+xml"/><item><title>El protocolo que agar.io nunca publicó</title><link>https://misael.org/es/bytes-over-the-wire-io-games/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><author><name>Misael Zapata</name></author><guid>https://misael.org/es/bytes-over-the-wire-io-games/</guid><description><![CDATA[<div class="featured-image">
                <img src="/bytes-over-the-wire-io-games/images/cover_es.png" referrerpolicy="no-referrer">
            </div>Abre las devtools en agar.io y la pestaña Network está inquietantemente quieta: sin polling, sin endpoint JSON, solo un WebSocket entregándote columnas de hex. Esto es lo que dicen esos bytes. Opcodes de un byte cuyo significado cambia según la dirección en la que viajan, un registro de nodo con cada campo en un offset fijo y sin un solo carácter que deletree &lsquo;x&rsquo;, little-endian en todas partes con una trampa de DataView que pliega un frame entero en un borrón diagonal, y la decisión que más importa: el servidor guarda el mundo completo y le envía a cada jugador solo su sector, así que el paquete escala con una pantalla y no con la población. Hace años choqué contra el mismo muro con un servidor Tornado y JSON, y un incendio se llevó el código antes de que pudiera presumir el arreglo.]]></description></item></channel></rss>