package main import "fmt" import "log" import "net" import "os" import "io" import "bytes" import "github.com/golang/protobuf/proto" import pb "git.wit.com/jcarr/witProtobuf" var mychannel chan *pb.Event func initChannel() { mychannel = make(chan *pb.Event) } // func processEvents(mychannel chan *pb.Event) { func processEvents() { for { message := <-mychannel log.Println("processEvents() on channel recieved a message") ReadReceivedData(message) } } func ReadReceivedData(data *pb.Event) { msgItems := data.GetResults() fmt.Println("Receiving data...") for _, item := range msgItems { fmt.Println(item) } } func handleProtoClient(conn net.Conn) { fmt.Println("Connected!") defer conn.Close() var buf bytes.Buffer _, err := io.Copy(&buf, conn) if err != nil { fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error()) return } pdata := new(pb.Event) err = proto.Unmarshal(buf.Bytes(), pdata) if err != nil { fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error()) return } mychannel <- pdata } func addEvent() { msg := new(pb.Event) msg.Name = "hello jeff" // var mybuf bytes.Buffer data, err := proto.Marshal(msg) if (err != nil) { log.Printf("something fucked up happened") } pdata := new(pb.Event) // err = proto.Unmarshal(data.Bytes(), pdata) err = proto.Unmarshal(data, pdata) mychannel <- pdata // sendDataToDest(data) }