All Projects → johnernaut → Goatee

johnernaut / Goatee

Licence: mit
A Redis-backed notification server written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Goatee

Socketshark
A WebSocket message router based on Python/Redis/asyncio
Stars: ✭ 51 (-80.75%)
Mutual labels:  redis, websockets
Qewd
Quick and Easy Web Development
Stars: ✭ 106 (-60%)
Mutual labels:  redis, websockets
Django Channels React Multiplayer
turn based strategy game using django channels, redux, and react hooks
Stars: ✭ 52 (-80.38%)
Mutual labels:  redis, websockets
Ssm
💕 build SSM from 0 👉🏽👉🏽 distributed micro service.
Stars: ✭ 3,383 (+1176.6%)
Mutual labels:  redis, websockets
Nodebb
Node.js based forum software built for the modern web
Stars: ✭ 12,303 (+4542.64%)
Mutual labels:  redis, websockets
Oneblog
👽 OneBlog,一个简洁美观、功能强大并且自适应的Java博客
Stars: ✭ 678 (+155.85%)
Mutual labels:  redis, websockets
Sacrificial Socket
A Go websocket library with an API similar to Socket.IO... but not Socket.IO
Stars: ✭ 96 (-63.77%)
Mutual labels:  redis, websockets
Laravel Blog
Laravel 8.0 blog application with Vue.js, Homestead, Horizon, Telescope and Pusher
Stars: ✭ 1,248 (+370.94%)
Mutual labels:  redis, websockets
Pychat
webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing
Stars: ✭ 152 (-42.64%)
Mutual labels:  redis, websockets
Omega
Real-time issue tracker optimized for small teams
Stars: ✭ 115 (-56.6%)
Mutual labels:  redis, websockets
Sockethub
A protocol gateway for the Web.
Stars: ✭ 329 (+24.15%)
Mutual labels:  redis, websockets
Django instagram
Photo sharing social media site built with Python/Django. Based on Instagram's design.
Stars: ✭ 165 (-37.74%)
Mutual labels:  redis, websockets
Saea
SAEA.Socket is a high-performance IOCP framework TCP based on dotnet standard 2.0; Src contains its application test scenarios, such as websocket,rpc, redis driver, MVC WebAPI, lightweight message server, ultra large file transmission, etc. SAEA.Socket是一个高性能IOCP框架的 TCP,基于dotnet standard 2.0;Src中含有其应用测试场景,例如websocket、rpc、redis驱动、MVC WebAPI、轻量级消息服务器、超大文件传输等
Stars: ✭ 318 (+20%)
Mutual labels:  redis, websockets
Kuzzle
Open-source Back-end, self-hostable & ready to use - Real-time, storage, advanced search - Web, Apps, Mobile, IoT -
Stars: ✭ 991 (+273.96%)
Mutual labels:  redis, websockets
Korio
Korio: Kotlin cORoutines I/O : Virtual File System + Async/Sync Streams + Async TCP Client/Server + WebSockets for Multiplatform Kotlin 1.3
Stars: ✭ 282 (+6.42%)
Mutual labels:  redis, websockets
Entangled
Rails in real time
Stars: ✭ 108 (-59.25%)
Mutual labels:  redis, websockets
Spring Boot Examples
个人学习 SpringBoot2.x 写的一些示例程序,目前正在持续更新中.....
Stars: ✭ 159 (-40%)
Mutual labels:  redis, websockets
Awesome crawl
腾讯新闻、知乎话题、微博粉丝,Tumblr爬虫、斗鱼弹幕、妹子图爬虫、分布式设计等
Stars: ✭ 246 (-7.17%)
Mutual labels:  redis, websockets
onesait-cloud-platform-clientlibraries
Client libraries to interact with Onesait Platform Cloud Side (Digital Broker specially)
Stars: ✭ 15 (-94.34%)
Mutual labels:  websockets
Node Url Shortener
A modern, minimalist, and lightweight URL shortener using Node.js and Redis
Stars: ✭ 259 (-2.26%)
Mutual labels:  redis

goatee

A Redis-backed notification server written in Go.

Build Status

Client library: goatee.js

Installation

go get github.com/johnernaut/goatee

import "github.com/johnernaut/goatee"

Usage

goatee works by listening on a channel via Redis Pub/Sub and then sending the received message to connected clients via WebSockets. Clients may create channels to listen on by using the goatee client library.

Configuration

goatee will look for a JSON configuration file in a config folder at the root of your project with the following names based on your environment: development.json, production.json, etc. By default config/development.json will be used but you can also specify a GO_ENV environment variable and the name of that will be used instead.

// example json configuration
// specify redis and websocket hosts
{
  "redis": {
    "host": "localhost:6379"
  },
  "web": {
    "host": "localhost:1235"
  }
}

Server

package main

import (
    "github.com/johnernaut/goatee"
    "log"
)

func main() {
    // subscribe to one or many redis channels
    err := goatee.CreateServer()

    if err != nil {
        log.Fatal("Error: ", err.Error())
    }
}

Client

An example of how to use the goatee client library can be found in the examples folder.

Redis

With goatee running and your web browser connected to the socket, you should now be able to test message sending from Redis to your client (browser). Run redis-cli and publish a message to the channel you subscribed to in your Go server. By default, goatee expects your Redis messages to have a specified JSON format to send to the client with the following details:

  • payload
  • created_at (optional)

E.x. publish 'mychannel' '{"payload": "mymessage which is a string, etc."}'

Tests

go test github.com/johnernaut/goatee

Authors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].