GithubHelp home page GithubHelp logo

gorelp's Introduction

RELP

A Golang library for RELP.

Usage

Server

// relp.NewServer(host string, port int, autoAck bool)
// host - Host to listen on 
// port - Port to listen on
// autoAck - Whether or not to acknowledge message as soon as they're recieved
relpServer, err := relp.NewServer("localhost", 3333, true)
if err != nil {
  fmt.Println("Error starting server:", err)
}
fmt.Println("Listening on localhost:3333")

for {
  message := <-relpServer.MessageChannel

  fmt.Println("Got message:", message.Data)
}

// When done:
relpServer.Close()

If you want to manage message acknowledgement yourself, just set autoAck to false when you create the server, then call message.Ack():

relpServer, err := relp.NewServer("localhost", 3333, false)
for {
  message := <-relpServer.MessageChannel
  doSomeAwesomeProcessing(message)
  err = message.Ack()
}

Client

// relp.NewClient(host string, port int)
relpClient, err := relp.NewClient("localhost", 3333)
if err != nil {
  fmt.Println("Error starting client:", err)
}

relpClient.SendString("Testing! Hooray!")

customMessage := relp.Message{
  Txn: 99,
  Command: "syslog",
  Data: "Manually constructed messages if you want that for some reason!",
}
relpClient.SendMessage(customMessage)

relpClient.Close()

At the moment, messages wait for a corresponding ack before they return. This behavior will be configurable in the future.

gorelp's People

Contributors

stith avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.