Skip to content

varstr/majordomo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Majordomo#

Based on Majordomo Protocol 0.1

Reqirement: gozmq

##TODO##

  • broker has not been tested yet
  • add unit-test

##Examples##

###Client Example###

package main

import (
    "os"
    md "github.com/ianoshen/majordomo"
)

func main() {
    client := md.NewClient("tcp://localhost:5555")
    defer client.Close()

    count := 0
    for ; count < 1e5; count += 1 {
        request := [][]byte{[]byte("Hello world")}
        reply, _ := client.Send([]byte("echo"), request)
        if len(reply) == 0 { break }
    }

    fmt.Printf("%d requests/replies processed\n", count)
}

###Broker Example###

package main

import (
    "os"
    "fmt"
    md "github.com/ianoshen/majordomo"
)

func main() {
    broker, _ := NewBroker("tcp://*:5555")
    defer broker.Close()
    go fmt.Println(<-broker.Errors())
    broker.Run()
}

###Worker Example###

package main

import (
    "os"
    md "github.com/ianoshen/majordomo"
)

func main() {
    worker, _ := NewWorker("tcp://localhost:5555", "echo")
    for reply := [][]byte{};;{
        request, _ := worker.Recv(reply)
        if len(request) == 0 { break }
        reply = request
    }
}

About

majordomo implementation for Golang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages