{"id":191,"date":"2015-08-18T23:30:08","date_gmt":"2015-08-18T21:30:08","guid":{"rendered":"http:\/\/www.bellingo.de\/blog\/?p=191"},"modified":"2015-09-05T22:59:15","modified_gmt":"2015-09-05T20:59:15","slug":"ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal","status":"publish","type":"post","link":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/","title":{"rendered":"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal"},"content":{"rendered":"<p>Wie in <a href=\"https:\/\/www.bellingo.de\/blog\/?p=169\">meinem letzten Beitrag<\/a> beschrieben macht es Unity Hobby-Entwicklern ziemlich schwer, Online-Spiele zu entwickeln. Einen mit Unity erstellten Game-Server auf einer Amazon AWS-Instanz zu betreiben ist dank fehlender Batchmode-Option unm\u00f6glich. Als Workaround habe ich f\u00fcr mein aktuelles Projekt einen eigenen Relay-Server implementiert, der auf Basis von Websockets arbeitet und so das Betreiben eines eigenen Servers erm\u00f6glicht kombiniert mit den Vorz\u00fcgen eines Servers in der Cloud mit fester IP-Adresse.<\/p>\n<p><!--more--><\/p>\n<p>Um ein eigenes Online-Spiel f\u00fcr wenige Spieler zu testen eignet sich die <a href=\"https:\/\/aws.amazon.com\/de\/\" target=\"_blank\">Amazon Cloud (AWS)<\/a> hervorragend. Eine Instanz in der &#8222;Elastic Compute Cloud&#8220; (ec2) gibt es ein Jahr lang kostenlos und kann mit unterschiedlichen Betriebssystemen wie Windows Server 2012 oder Ubuntu betrieben werden. Mit einem Game-Server auf einer solchen Instanz lie\u00dfe sich das Problem des NAT-Punchthrough, also der Port-Weiterleitung hinter einem Heimrouter, umgehen. Dieser f\u00fchrt n\u00e4mlich meistens zu Problemen wollte man einen Server bei sich zuhause betreiben.<\/p>\n<p>Leider haben diese Server-Instanzen ein gravierenden Nachteil: sie besitzen keine Grafikkarten, sodass sich mit Unity erstellte Programme nicht starten lassen. Abhilfe k\u00f6nnte der Batchmode von Unity schaffen, doch ist dieser ein exklusives Feature der Pro-Version. Als Alternative k\u00e4men beispielsweise die neuen <a href=\"https:\/\/unity3d.com\/services\/multiplayer\" target=\"_blank\">Unity Internet Services<\/a> in Frage. Diese bieten eine Lobby und einen Relay-Server, sodass sich Spieler in einem Multiplayer-Spiel verbinden und selbst als Server fungieren k\u00f6nnen. Allerdings ist dieser Service nur im derzeit laufenden Beta-Stadium kostenfrei und f\u00fcr Nutzer einer Personal-Lizenz nutzbar. Welche Kosten nach der Beta-Phase entstehen ist ungewiss.<\/p>\n<p>Mit diesen Einschr\u00e4nkungen im Hinterkopf habe ich also eine andere L\u00f6sung gew\u00e4hlt, und zwar einen eigenen Relay-Server der auf meiner ec2-Instanz l\u00e4uft, und zu dem sich sowohl Game-Server als auch die Spieler-Clients verbinden. Das <a href=\"http:\/\/www.websocket.org\/aboutwebsocket.html\" target=\"_blank\">WebSocket-Protokoll<\/a> bietet den enormen Vorteil, dass es \u00fcber die http- bzw. https-Ports 80 bzw. 443 l\u00e4uft, die auf allen Heim-Routern und Mobilger\u00e4ten standardm\u00e4\u00dfig freigeschaltet sind. Schlie\u00dflich will jeder Webseiten in seinem Browser ansehen k\u00f6nnen. Das Problem des NAT-Punchthroughs entf\u00e4llt also.<\/p>\n<p>Was genau macht nun dieser Relay-Server? Er empf\u00e4ngt eine Verbindungsanfrage von einem Game-Server, der z.B. bei mir zuhause l\u00e4uft. Er legt die Verbindungsdaten in einer neuen Session ab und wartet dann auf Anfragen von Spieler-Clients. Sobald sich ein Client mit dem Relay-Server verbindet, wird dem Game-Server dies mitgeteilt. Sowohl Game-Server als auch Clients senden nun ihre RPCs an den Relay-Server, der diese jeweils weiterleitet. Und hier wird es nun aufw\u00e4ndig, denn nat\u00fcrlich lassen sich die RPC- und Synchronisationsmethoden der Unity-Netzwerkschicht nun nicht mehr verwenden. Die RPC-Funktionalit\u00e4t muss man selbst implementieren.<\/p>\n<p>Eine Implementierung des WebSocket-Protokolls in C# ist <em>websocket-sharp<\/em> und kann <a href=\"https:\/\/github.com\/sta\/websocket-sharp\" target=\"_blank\">bei GitHub heruntergeladen werden<\/a>. Die zugeh\u00f6rige DLL l\u00e4sst sich mit Visual Studio einfach kompilieren und in das eigene Unity-Projekt integrieren. Dazu schiebt man die entstehende Datei in das Plugins-Verzeichnis unter Assets. Die in websocket-sharp enthaltenden Beispiele eignen sich hervorragend als Einstiegspunkt f\u00fcr den eigenen Relay-Server.<\/p>\n<p>Zwei Dinge gibt es noch zu beachten:<\/p>\n<ol>\n<li>Websocket-sharp greift auf die Socket-Implementierung im Namespace System.Net.Sockets zur\u00fcck, welcher in Unity 4.x auf Mobilger\u00e4ten geblockt wird, sofern man keine Pro-Lizenz besitzt. Die einfachste L\u00f6sung daf\u00fcr ist nat\u00fcrlich auf Unity 5.x umzusteigen. Sollte das nicht m\u00f6glich sein, kann man einen Blick auf das Asset-Paket <a href=\"https:\/\/www.assetstore.unity3d.com\/en\/#!\/content\/13166\" target=\"_blank\">Good ol&#8216; Sockets<\/a> werfen, das die Socket-Funktionalit\u00e4t f\u00fcr Unity nachimplementiert. Ich habe es selbst allerdings nicht ausprobiert, sondern die einfachere Variante gew\u00e4hlt und auf Unity 5.0 aktualisiert.<\/li>\n<li>WebSockets sind eine Erweiterung des Http-Protokolls. Leider versteht nicht jeder Proxy-Server im Internet diese Erweiterung, wie in <a href=\"http:\/\/blog.hekkers.net\/2012\/12\/09\/websockets-and-mobile-network-operators\/\" target=\"_blank\">diesem Beitrag von Robert Hekkers<\/a> beschrieben wird. Auch bei manchen Mobilfunk-Providern mag das der Fall sein, sodass die WebSocket-L\u00f6sung m\u00f6glicherweise nicht auf allen SmartPhones funktioniert. Die allgemein vorgeschlagene L\u00f6sung ist, anstatt Port 80 den Port 443 zu verwenden, selbst wenn man keine Verschl\u00fcsselung nutzt, da dieser h\u00e4ufig nicht \u00fcber einen Proxy l\u00e4uft. Websocket-sharp unterst\u00fctzt auch das.<\/li>\n<\/ol>\n<p>Will man tats\u00e4chlich ohne jegliches Budget ein Multiplayer-Onlinespiel, insbesondere f\u00fcr Mobilger\u00e4te, entwickeln so ist der vorgeschlagene Weg sicherlich eine Option. Ich hoffe, dass ich die Zeit finde meinen eigenen Relay-Server in eine pr\u00e4sentable Form zu bringen sodass ich ihn hier demn\u00e4chst ver\u00f6ffentlichen kann. Solltest Du Interesse daran haben w\u00fcrde mich eine R\u00fcckmeldung freuen und das nat\u00fcrlich meine Motivation steigern.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie in meinem letzten Beitrag beschrieben macht es Unity Hobby-Entwicklern ziemlich schwer, Online-Spiele zu entwickeln. Einen mit Unity erstellten Game-Server auf einer Amazon AWS-Instanz zu betreiben ist dank fehlender Batchmode-Option unm\u00f6glich. Als Workaround habe ich f\u00fcr mein aktuelles Projekt einen eigenen Relay-Server implementiert, der auf Basis von Websockets arbeitet und so das Betreiben eines eigenen &hellip; <a href=\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\" class=\"more-link\"><span class=\"screen-reader-text\">Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,30],"tags":[72,32,74],"class_list":["post-191","post","type-post","status-publish","format-standard","hentry","category-spieleentwicklung","category-unity","tag-aws-de","tag-unity","tag-websocket-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal - Games:Tech:Blog<\/title>\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.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal - Games:Tech:Blog\" \/>\n<meta property=\"og:description\" content=\"Wie in meinem letzten Beitrag beschrieben macht es Unity Hobby-Entwicklern ziemlich schwer, Online-Spiele zu entwickeln. Einen mit Unity erstellten Game-Server auf einer Amazon AWS-Instanz zu betreiben ist dank fehlender Batchmode-Option unm\u00f6glich. Als Workaround habe ich f\u00fcr mein aktuelles Projekt einen eigenen Relay-Server implementiert, der auf Basis von Websockets arbeitet und so das Betreiben eines eigenen &hellip; Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal weiterlesen\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\" \/>\n<meta property=\"og:site_name\" content=\"Games:Tech:Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-18T21:30:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-09-05T20:59:15+00:00\" \/>\n<meta name=\"author\" content=\"Ingo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ingo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\"},\"author\":{\"name\":\"Ingo\",\"@id\":\"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9\"},\"headline\":\"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal\",\"datePublished\":\"2015-08-18T21:30:08+00:00\",\"dateModified\":\"2015-09-05T20:59:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\"},\"wordCount\":728,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9\"},\"keywords\":[\"AWS\",\"Unity\",\"WebSocket\"],\"articleSection\":[\"Spieleentwicklung\",\"Unity\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\",\"url\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\",\"name\":\"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal - Games:Tech:Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/#website\"},\"datePublished\":\"2015-08-18T21:30:08+00:00\",\"dateModified\":\"2015-09-05T20:59:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.bellingo.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.bellingo.de\/blog\/#website\",\"url\":\"https:\/\/www.bellingo.de\/blog\/\",\"name\":\"Games:Tech:Blog\",\"description\":\"A Blog about Games, Technology in Games, and Technology in General\",\"publisher\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.bellingo.de\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9\",\"name\":\"Ingo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/93a4b9881ee1983f4fafc7e996ce82a42c3a1540c18f7417809c08a19658f167?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/93a4b9881ee1983f4fafc7e996ce82a42c3a1540c18f7417809c08a19658f167?s=96&d=mm&r=g\",\"caption\":\"Ingo\"},\"logo\":{\"@id\":\"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/www.bellingo.de\/blog\/author\/ingo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal - Games:Tech:Blog","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.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/","og_locale":"de_DE","og_type":"article","og_title":"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal - Games:Tech:Blog","og_description":"Wie in meinem letzten Beitrag beschrieben macht es Unity Hobby-Entwicklern ziemlich schwer, Online-Spiele zu entwickeln. Einen mit Unity erstellten Game-Server auf einer Amazon AWS-Instanz zu betreiben ist dank fehlender Batchmode-Option unm\u00f6glich. Als Workaround habe ich f\u00fcr mein aktuelles Projekt einen eigenen Relay-Server implementiert, der auf Basis von Websockets arbeitet und so das Betreiben eines eigenen &hellip; Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal weiterlesen","og_url":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/","og_site_name":"Games:Tech:Blog","article_published_time":"2015-08-18T21:30:08+00:00","article_modified_time":"2015-09-05T20:59:15+00:00","author":"Ingo","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Ingo","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#article","isPartOf":{"@id":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/"},"author":{"name":"Ingo","@id":"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9"},"headline":"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal","datePublished":"2015-08-18T21:30:08+00:00","dateModified":"2015-09-05T20:59:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/"},"wordCount":728,"commentCount":0,"publisher":{"@id":"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9"},"keywords":["AWS","Unity","WebSocket"],"articleSection":["Spieleentwicklung","Unity"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/","url":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/","name":"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal - Games:Tech:Blog","isPartOf":{"@id":"https:\/\/www.bellingo.de\/blog\/#website"},"datePublished":"2015-08-18T21:30:08+00:00","dateModified":"2015-09-05T20:59:15+00:00","breadcrumb":{"@id":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.bellingo.de\/blog\/ein-relay-server-mit-websockets-fuer-online-spiele-mit-unity-personal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bellingo.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Ein Relay-Server mit WebSockets f\u00fcr Online-Spiele mit Unity Personal"}]},{"@type":"WebSite","@id":"https:\/\/www.bellingo.de\/blog\/#website","url":"https:\/\/www.bellingo.de\/blog\/","name":"Games:Tech:Blog","description":"A Blog about Games, Technology in Games, and Technology in General","publisher":{"@id":"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bellingo.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/82498f8ac21d11f5948cab6d0a9807e9","name":"Ingo","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/93a4b9881ee1983f4fafc7e996ce82a42c3a1540c18f7417809c08a19658f167?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93a4b9881ee1983f4fafc7e996ce82a42c3a1540c18f7417809c08a19658f167?s=96&d=mm&r=g","caption":"Ingo"},"logo":{"@id":"https:\/\/www.bellingo.de\/blog\/#\/schema\/person\/image\/"},"url":"https:\/\/www.bellingo.de\/blog\/author\/ingo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/posts\/191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/comments?post=191"}],"version-history":[{"count":3,"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/posts\/191\/revisions"}],"predecessor-version":[{"id":202,"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/posts\/191\/revisions\/202"}],"wp:attachment":[{"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/media?parent=191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/categories?post=191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bellingo.de\/blog\/wp-json\/wp\/v2\/tags?post=191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}