{"id":25080205,"url":"https://github.com/sitetester/info-center","last_synced_at":"2025-04-01T04:39:47.240Z","repository":{"id":130879305,"uuid":"459337195","full_name":"sitetester/info-center","owner":"sitetester","description":null,"archived":false,"fork":false,"pushed_at":"2022-02-19T19:24:01.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-03-09T06:12:16.847Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sitetester.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-14T21:52:23.000Z","updated_at":"2024-06-19T12:14:34.970Z","dependencies_parsed_at":null,"dependency_job_id":"f1569fa9-ce89-4ebf-b1ce-499c011a8bf7","html_url":"https://github.com/sitetester/info-center","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitetester%2Finfo-center","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitetester%2Finfo-center/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitetester%2Finfo-center/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitetester%2Finfo-center/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sitetester","download_url":"https://codeload.github.com/sitetester/info-center/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246586099,"owners_count":20801026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-07T03:18:34.898Z","updated_at":"2025-04-01T04:39:47.213Z","avatar_url":"https://github.com/sitetester.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"It's a backend service with go programming language. This service allows clients almost real-time communication by sending messages between each other. Service is able to serve multiple clients concurrently. Each message is sent to a particular topic allowing clients to communicate in separate communication streams.\n\nMessages can be sent by performing HTTP POST request to /info-center/{topic} route. Topic for the message is passed in the request URL, in place of {topic} tag.\n\nFor example client that wants to send a message \"msg1\" to a topic \"topic1\", should perform the following request:\n\n```\nPOST /info-center/topic1 HTTP/1.0\nHost: localhost\nContent-length: 5\n\nlabas\nHTTP/1.0 204 No Content\nDate: Mon, 14 Sep 2015 08:26:20 GMT\n\n\n```\n\nServer response is HTTP 204 code if message was accepted successfully. Each message sent to the server is having a unique auto-incrementing ID value.\n\nMessage retrieval is available by sending HTTP GET request to the same API route /info-center/{topic}. Response to this request is an event stream (as defined in W3C specification \"Server-Sent Events\" http://www.w3.org/TR/eventsource/). All sent messages  have a message type \"msg\". Service disconnect all the clients if they were consuming the stream for more than max allowed time e.g. 30 sec. Before client is disconnected, server send special \"timeout\" event. The contents of the \"timeout\" event is the time how long client was connected.\n\nExample of receiving message events:\n```\nGET /info-center/topic1 HTTP/1.0\nHost: localhost\n\nHTTP/1.0 200 OK\nCache-Control: no-cache\nContent-Type: text/event-stream\nDate: Mon, 14 Sep 2015 08:33:46 GMT\n\nid: 7\nevent: msg\ndata: msg1\n\nevent: timeout\ndata: 30s\n\n\n```\n\nClients do not need to create or destroy topics before starting to use them. Just by getting or writing messages to a particular topic automatically create a communication channel. When clients not using a topic, all resources allocated are freed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitetester%2Finfo-center","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsitetester%2Finfo-center","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitetester%2Finfo-center/lists"}