Merge pull request #101 from Fank/master

Added Go example
This commit is contained in:
AnthorNet 2020-07-05 19:59:42 +02:00 committed by GitHub
commit 358ae77c8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 71 additions and 0 deletions

64
examples/Go/eddn.go Normal file
View File

@ -0,0 +1,64 @@
package main
import (
"bytes"
"compress/zlib"
"encoding/json"
"fmt"
"time"
"gopkg.in/zeromq/goczmq.v4"
)
type EDDN struct {
SchemaRef string `json:"$schemaRef"`
Header EDDNHeader `json:"header"`
Message json.RawMessage `json:"message"`
}
type EDDNHeader struct {
UploaderID string `json:"uploaderID"`
SoftwareName string `json:"softwareName"`
SoftwareVersion string `json:"softwareVersion"`
GatewayTimestamp time.Time `json:"gatewayTimestamp"`
}
func main() {
channel := goczmq.NewSubChanneler("tcp://eddn.edcd.io:9500", "")
defer channel.Destroy()
run := true
for run {
select {
case rawMessage, ok := <-channel.RecvChan:
if !ok {
run = false
continue
}
message, err := decodeMessage(rawMessage[0])
if err != nil {
fmt.Println(err.Error())
run = false
continue
}
fmt.Println(message.SchemaRef, message.Header.SoftwareName)
}
}
}
func decodeMessage(rawMessage []byte) (*EDDN, error) {
r, err := zlib.NewReader(bytes.NewReader(rawMessage))
if err != nil {
return nil, err
}
defer r.Close()
var message EDDN
err = json.NewDecoder(r).Decode(&message)
if err != nil {
return nil, err
}
return &message, nil
}

5
examples/Go/go.mod Normal file
View File

@ -0,0 +1,5 @@
module github.com/EDSM-NET/EDDN
go 1.14
require gopkg.in/zeromq/goczmq.v4 v4.1.0

2
examples/Go/go.sum Normal file
View File

@ -0,0 +1,2 @@
gopkg.in/zeromq/goczmq.v4 v4.1.0 h1:CE+FE81mGVs2aSlnbfLuS1oAwdcVywyMM2AC1g33imI=
gopkg.in/zeromq/goczmq.v4 v4.1.0/go.mod h1:h4IlfePEYMpFdywGr5gAwKhBBj+hiBl/nF4VoSE4k+0=