{"id":5310,"date":"2024-08-20T08:35:00","date_gmt":"2024-08-20T06:35:00","guid":{"rendered":"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/"},"modified":"2024-08-20T08:35:00","modified_gmt":"2024-08-20T06:35:00","slug":"primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr","status":"publish","type":"post","link":"https:\/\/viva.racunalniske-novice.com\/es\/ejemplo-de-la-implementacion-de-una-conversacion-de-texto-en-tiempo-real-con-la-biblioteca-de-senalizadores\/","title":{"rendered":"Un ejemplo de implementaci\u00f3n de una conversaci\u00f3n de texto en tiempo real con la biblioteca SignalR"},"content":{"rendered":"<p><em>Autor: Denis Balant, Enej Hudobreznik<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>El protocolo HTTP (Protocolo de transferencia de hipertexto) todav\u00eda se utiliza principalmente para la transferencia de datos a trav\u00e9s de Internet. su derivado cifrado HTTPS (HTTP Secure), m\u00e1s moderno y seguro. Se basan en una arquitectura cliente-servidor, donde el cliente (cliente en ingl\u00e9s) env\u00eda una solicitud (solicitud HTTP en ingl\u00e9s) al servidor (servidor en ingl\u00e9s) y el servidor responde con una respuesta (respuesta HTTP en ingl\u00e9s).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image.png\" alt=\"Solicitudes y respuestas HTTP (fuente: https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques)\" class=\"wp-image-2538892\"\/><figcaption><sub>Solicitudes y respuestas HTTP (fuente: <a href=\"https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques\">https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques<\/a>)<\/sub><\/figcaption><\/figure>\n\n\n\n<p>HTTP y HTTPS son adecuados para transferencias simples de solicitud-respuesta (por ejemplo, descargar un archivo HTML a petici\u00f3n del cliente). Con estos dos protocolos, el usuario solo puede obtener datos actualizados cuando se realiza una nueva solicitud, por lo que no son los m\u00e1s apropiados para la transferencia de datos en tiempo real (por ejemplo, chat en l\u00ednea, videojuegos en l\u00ednea, seguimiento de ubicaci\u00f3n, etc.), en la que se basa gran parte de la funcionalidad de las aplicaciones web modernas. Existen muchas otras maneras mejores de implementar la agilidad, cada una con sus propias ventajas e inconvenientes. <\/p>\n\n\n\n<p>El m\u00e9todo de implementaci\u00f3n m\u00e1s simple es el sondeo regular, donde el cliente env\u00eda repetidamente solicitudes de nuevos datos al servidor en cada intervalo de sondeo, independientemente de si el contenido ha cambiado o no. A pesar de su simplicidad, este enfoque no es adecuado para servicios m\u00e1s grandes donde el acceso al servidor requiere muchos clientes, porque una gran cantidad de solicitudes innecesarias y repetidas pueden sobrecargarlo y as\u00ed ralentizar el rendimiento del servicio. &nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-2.png\" alt=\"\" class=\"wp-image-2538894\"\/><figcaption><sub>Interrogatorio actual (fuente: <a href=\"https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques\">https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques<\/a>)<\/sub><\/figcaption><\/figure>\n\n\n\n<p>La mejora se logra mediante la introducci\u00f3n de un sondeo a largo plazo, donde el cliente env\u00eda solicitudes al servidor de la misma manera, pero el servidor no responde hasta que detecta la presencia de nuevos datos. La desventaja de este enfoque es que el cliente debe tener definido un cierto intervalo de tiempo despu\u00e9s del cual reconoce la inactividad del servidor como un error. Esto agrega una capa adicional de complejidad a la configuraci\u00f3n del cliente y del servidor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-3.png\" alt=\"\" class=\"wp-image-2538896\"\/><figcaption><sub>Interrogatorio prolongado (fuente: <a href=\"https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques\">https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques<\/a>)<\/sub><\/figcaption><\/figure>\n\n\n\n<p>El est\u00e1ndar HTML5 moderno tambi\u00e9n proporciona una API llamada Eventos enviados por el servidor. Es un protocolo donde el cliente no tiene que enviar solicitudes peri\u00f3dicamente al servidor, sino que el servidor reenv\u00eda los datos necesarios cuando se realizan cambios, facilitando as\u00ed la comunicaci\u00f3n en tiempo real.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-4.png\" alt=\"\" class=\"wp-image-2538898\"\/><figcaption><sub>Eventos enviados por el servidor (fuente: <a href=\"https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques\">https:\/\/www.telerik.com\/blogs\/real-time-communication-techniques<\/a>)<\/sub><\/figcaption><\/figure>\n\n\n\n<p>El est\u00e1ndar HTML5 tambi\u00e9n ofrece el protocolo WebSockets, que permite una verdadera comunicaci\u00f3n bidireccional en tiempo real. Al inicio del establecimiento se realiza un apret\u00f3n de manos, donde el cliente y el servidor acuerdan el conjunto de est\u00e1ndares que utilizar\u00e1n. Despu\u00e9s de un apret\u00f3n de manos exitoso, se abre una conexi\u00f3n permanente con un peque\u00f1o retraso entre los dos participantes. Este protocolo es especialmente \u00fatil cuando se trata de una conexi\u00f3n punto a punto (una conexi\u00f3n directa entre un cliente y un servidor).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-5-e1724134052479.png\" alt=\"\" class=\"wp-image-2538902\"\/><\/figure>\n\n\n\n<p>Adem\u00e1s de la arquitectura cl\u00e1sica cliente-servidor, existen otras soluciones en las que la conexi\u00f3n entre clientes no fluye a trav\u00e9s de servidores, sino directamente entre clientes que desempe\u00f1an el papel de cliente y servidor (estas redes peer-to-peer). Un protocolo popular para la comunicaci\u00f3n en tiempo real en este tipo de redes es WebRTC.<\/p>\n\n\n\n<p>En el entorno .NET para comunicaci\u00f3n en tiempo real, podemos usar la biblioteca SignalR de c\u00f3digo abierto, que forma parte del marco web ASP.NET Core, por lo que es f\u00e1cil agregarla a proyectos existentes como un nivel adicional de middleware cuando procesar solicitudes entrantes. La biblioteca simula llamadas a m\u00e9todos en el cliente desde el lado del servidor y llamadas a m\u00e9todos en el servidor desde el lado del cliente (llamada a procedimiento remoto - RPC), pero no garantiza la idoneidad del no. par\u00e1metros y sus tipos. Desde el servidor podemos llamar a m\u00e9todos en todos los clientes, en un grupo espec\u00edfico de clientes o en un solo cliente.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-6.png\" alt=\"\" class=\"wp-image-2538908\"\/><figcaption><sub>Diagrama de c\u00f3mo funciona la biblioteca SignalR (<a href=\"https:\/\/learn.microsoft.com\/en-us\/aspnet\/signalr\/overview\/getting-started\/introduction-to-signalr\">https:\/\/learn.microsoft.com\/en-us\/aspnet\/signalr\/overview\/getting-started\/introduction-to-signalr<\/a>)<\/sub><\/figcaption><\/figure><\/div>\n\n\n\n<p>Su principal ventaja es la simplicidad de implementaci\u00f3n gracias a los paquetes de desarrollo de software (SDK) para muchas plataformas diferentes, que ocultan el funcionamiento interno del servicio a los programadores, y la posibilidad de alojamiento sencillo con el servicio Azure SignalR. Una ventaja adicional es que el propio servicio elige el tipo de conexi\u00f3n m\u00e1s apropiado (descrita anteriormente) entre el cliente y el servidor.<\/p>\n\n\n\n<p>El uso de la biblioteca se basa en clases especiales llamadas hubs, que representan una abstracci\u00f3n de la conexi\u00f3n entre los clientes y el servidor. Para ellos, definimos m\u00e9todos que los clientes pueden llamar en el servidor.<\/p>\n\n\n\n<p>El siguiente ejemplo muestra un ejemplo de implementaci\u00f3n de una conversaci\u00f3n de texto simple. Primero, definimos el nodo base para la conversaci\u00f3n en el servidor. Los m\u00e9todos de esta clase representan m\u00e9todos que los clientes pueden llamar en el servidor. Cuando se llama al m\u00e9todo SendMessage, el cliente env\u00eda el ID de usuario (userId) y el contenido del mensaje (message), mientras que el servidor llama al m\u00e9todo ReceiverMessage en todos los clientes con los par\u00e1metros especificados.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-7.png\" alt=\"\" class=\"wp-image-2538942\"\/><figcaption><sub>Implementaci\u00f3n de conversaci\u00f3n de texto en el servidor en entorno .NET (fuente propia)<\/sub><\/figcaption><\/figure>\n\n\n\n<p>El siguiente ejemplo muestra una implementaci\u00f3n de cliente web JavaScript utilizando la biblioteca oficial (@microsoft\/signalr). Los clientes se conectan a la URL del nodo (\/chat en el ejemplo siguiente). Una conexi\u00f3n est\u00e1 representada por el objeto de conexi\u00f3n. El m\u00e9todo on representa un oyente de la llamada al m\u00e9todo, cuyo nombre se proporciona como primer par\u00e1metro y como segundo la funci\u00f3n que se ejecuta en el evento. Implementamos m\u00e9todos en el servidor a trav\u00e9s del m\u00e9todo de invocaci\u00f3n del objeto de conexi\u00f3n, que requiere el nombre del m\u00e9todo como primer argumento, seguido de sus par\u00e1metros.<\/p>\n\n\n\n<p>De forma predeterminada, los datos se transfieren entre el servidor y los clientes en formato JSON, pero la biblioteca tambi\u00e9n admite el formato MessagePack, m\u00e1s eficiente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2024\/08\/image-8.png\" alt=\"\" class=\"wp-image-2538944\"\/><figcaption><sub>Implementaci\u00f3n del cliente web en lenguaje JavaScript (fuente propia)<\/sub><\/figcaption><\/figure>\n\n\n\n<p>Aunque la biblioteca facilita enormemente el desarrollo, tiene sus inconvenientes. Uno de los principales es la escalabilidad del sistema para autohospedarse y garantizar un funcionamiento ininterrumpido, ya que su implementaci\u00f3n es muy dif\u00edcil de distribuir en varios servidores separados. Esto resulta especialmente dif\u00edcil si queremos reducir la latencia para usuarios remotos y alojar en varias ubicaciones diferentes, ya que el dise\u00f1o de la soluci\u00f3n se limita a una sola. Adem\u00e1s, la biblioteca no garantiza la entrega y el ordenamiento confiables de los mensajes, lo que puede degradar la experiencia del usuario.<\/p>","protected":false},"excerpt":{"rendered":"<p>Autores: Denis Balant, Enej Hudobreznik. El protocolo HTTP (Protocolo de Transferencia de Hipertexto), o su derivado cifrado m\u00e1s moderno y seguro, HTTPS (HTTP Secure), se sigue utilizando principalmente para la transferencia de datos a trav\u00e9s de Internet. Se basan en la arquitectura cliente-servidor, donde el cliente env\u00eda una solicitud (solicitud HTTP) al servidor y este responde con una respuesta [\u2026]<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[66],"tags":[],"class_list":["post-5310","post","type-post","status-publish","format-standard","hentry","category-programi"],"acf":{"subtitle":"Kljub nenehnemu razvoju spletnih strani so tehnologije v ozadju skozi \u010das ostale zelo podobne. Ker splet ni dom le sodobnim stranem, ampak tudi starej\u0161im, ki morajo delovati tudi v sodobnih brskalnikih, so dana\u0161nje tehnologije pogosto le izbolj\u0161ane in dopolnjene razli\u010dic tistih, ki so nastale \u017ee ob samem za\u010detku svetovnega spleta. Naprednej\u0161e sodobne funkcije, ki jih te re\u0161itve ne podpirajo, pa omogo\u010dajo novi standardi.","heading":"","summary":"Kljub nenehnemu razvoju spletnih strani so tehnologije v ozadju skozi \u010das ostale zelo podobne. ","thumbnail_small":"https:\/\/racunalniske-novice.com\/wp-content\/uploads\/2024\/08\/coding-560x315.jpg","thumbnail_large":"https:\/\/racunalniske-novice.com\/wp-content\/uploads\/2024\/08\/coding-1024x682.jpg","thumbnail_caption":"Fotografija je ilustrativna. (Foto: Pixabay)","gallery":"","video_gallery":null,"author":"","links":null,"sources":null,"skip_language":[]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR - Ra\u010dunalni\u0161ke novice<\/title>\n<meta name=\"description\" content=\"Kljub nenehnemu razvoju spletnih strani so tehnologije v ozadju skozi \u010das ostale zelo podobne.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/posts\/5310\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR - Ra\u010dunalni\u0161ke novice\" \/>\n<meta property=\"og:description\" content=\"Avtorja: Denis Balant, Enej Hudobreznik Za prenos podatkov preko spletu se \u0161e danes primarno uporablja protokol HTTP (angl. Hypertext Transfer Protocol) oz. njegova sodobnej\u0161a in varnej\u0161a \u0161ifrirana izpeljanka HTTPS (angl. HTTP Secure). Osnovana sta na arhitekturi odjemalec-stre\u017enik, kjer odjemalec (angl. client) po\u0161lje stre\u017eniku (angl. Server) zahtevo (angl. HTTP request), stre\u017enik pa nanj odgovori z odzivom [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/viva.racunalniske-novice.com\/es\/ejemplo-de-la-implementacion-de-una-conversacion-de-texto-en-tiempo-real-con-la-biblioteca-de-senalizadores\/\" \/>\n<meta property=\"og:site_name\" content=\"Ra\u010dunalni\u0161ke novice\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-20T06:35:00+00:00\" \/>\n<meta name=\"author\" content=\"sinusiks\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"sinusiks\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/\",\"url\":\"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/\",\"name\":\"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR - Ra\u010dunalni\u0161ke novice\",\"isPartOf\":{\"@id\":\"https:\/\/viva.racunalniske-novice.com\/en\/#website\"},\"datePublished\":\"2024-08-20T06:35:00+00:00\",\"dateModified\":\"2024-08-20T06:35:00+00:00\",\"author\":{\"@id\":\"https:\/\/viva.racunalniske-novice.com\/en\/#\/schema\/person\/afb62e36efa34516d50249517e4cdbb4\"},\"breadcrumb\":{\"@id\":\"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/viva.racunalniske-novice.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/viva.racunalniske-novice.com\/en\/#website\",\"url\":\"https:\/\/viva.racunalniske-novice.com\/en\/\",\"name\":\"Ra\u010dunalni\u0161ke novice\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/viva.racunalniske-novice.com\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/viva.racunalniske-novice.com\/en\/#\/schema\/person\/afb62e36efa34516d50249517e4cdbb4\",\"name\":\"sinusiks\",\"sameAs\":[\"https:\/\/ml.racunalniske-novice.com\"],\"url\":\"https:\/\/viva.racunalniske-novice.com\/es\/author\/sinusiks\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR - Ra\u010dunalni\u0161ke novice","description":"Kljub nenehnemu razvoju spletnih strani so tehnologije v ozadju skozi \u010das ostale zelo podobne.","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:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/posts\/5310","og_locale":"es_ES","og_type":"article","og_title":"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR - Ra\u010dunalni\u0161ke novice","og_description":"Avtorja: Denis Balant, Enej Hudobreznik Za prenos podatkov preko spletu se \u0161e danes primarno uporablja protokol HTTP (angl. Hypertext Transfer Protocol) oz. njegova sodobnej\u0161a in varnej\u0161a \u0161ifrirana izpeljanka HTTPS (angl. HTTP Secure). Osnovana sta na arhitekturi odjemalec-stre\u017enik, kjer odjemalec (angl. client) po\u0161lje stre\u017eniku (angl. Server) zahtevo (angl. HTTP request), stre\u017enik pa nanj odgovori z odzivom [&hellip;]","og_url":"https:\/\/viva.racunalniske-novice.com\/es\/ejemplo-de-la-implementacion-de-una-conversacion-de-texto-en-tiempo-real-con-la-biblioteca-de-senalizadores\/","og_site_name":"Ra\u010dunalni\u0161ke novice","article_published_time":"2024-08-20T06:35:00+00:00","author":"sinusiks","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"sinusiks","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/","url":"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/","name":"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR - Ra\u010dunalni\u0161ke novice","isPartOf":{"@id":"https:\/\/viva.racunalniske-novice.com\/en\/#website"},"datePublished":"2024-08-20T06:35:00+00:00","dateModified":"2024-08-20T06:35:00+00:00","author":{"@id":"https:\/\/viva.racunalniske-novice.com\/en\/#\/schema\/person\/afb62e36efa34516d50249517e4cdbb4"},"breadcrumb":{"@id":"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/viva.racunalniske-novice.com\/primer-implementacije-sprotnega-tekstovnega-pogovora-s-knjiznico-signalr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/viva.racunalniske-novice.com\/en\/"},{"@type":"ListItem","position":2,"name":"Primer implementacije sprotnega tekstovnega pogovora s knji\u017enico SignalR"}]},{"@type":"WebSite","@id":"https:\/\/viva.racunalniske-novice.com\/en\/#website","url":"https:\/\/viva.racunalniske-novice.com\/en\/","name":"Ra\u010dunalni\u0161ke novice","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/viva.racunalniske-novice.com\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/viva.racunalniske-novice.com\/en\/#\/schema\/person\/afb62e36efa34516d50249517e4cdbb4","name":"sinusiks","sameAs":["https:\/\/ml.racunalniske-novice.com"],"url":"https:\/\/viva.racunalniske-novice.com\/es\/author\/sinusiks\/"}]}},"_links":{"self":[{"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/posts\/5310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/comments?post=5310"}],"version-history":[{"count":0,"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/posts\/5310\/revisions"}],"wp:attachment":[{"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/media?parent=5310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/categories?post=5310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/viva.racunalniske-novice.com\/es\/wp-json\/wp\/v2\/tags?post=5310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}