first commit
This commit is contained in:
82
client/main.go
Normal file
82
client/main.go
Normal file
@@ -0,0 +1,82 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net"
|
||||
"time"
|
||||
|
||||
pb "gordenko.dev/dima/protolab/gen/service/v1"
|
||||
|
||||
"gordenko.dev/dima/protolab/bin"
|
||||
)
|
||||
|
||||
const (
|
||||
ServerAddr = "localhost:8080"
|
||||
)
|
||||
|
||||
func main() {
|
||||
conn, err := net.Dial("tcp", ServerAddr)
|
||||
if err != nil {
|
||||
log.Fatalf("net.Dial: %v\n", err)
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
log.Println("connected to server")
|
||||
|
||||
for {
|
||||
// PING
|
||||
pingReq := &pb.RequestWrapper{
|
||||
Payload: &pb.RequestWrapper_Ping{
|
||||
Ping: &pb.PingRequest{
|
||||
Timestamp: time.Now().Unix(),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err = bin.WriteMessage(conn, pingReq)
|
||||
if err != nil {
|
||||
log.Fatalf("send ping: %v", err)
|
||||
} else {
|
||||
log.Println("ping sent")
|
||||
}
|
||||
|
||||
var pingResp pb.ResponseWrapper
|
||||
err = bin.ReadMessage(conn, &pingResp)
|
||||
if err != nil {
|
||||
log.Fatalf("read ping response: %v", err)
|
||||
}
|
||||
if resp := pingResp.GetPingResp(); resp != nil {
|
||||
log.Printf("pong received, server time: %s\n",
|
||||
time.Unix(resp.GetServerTimestamp(), 0).Format(time.RFC3339))
|
||||
}
|
||||
|
||||
time.Sleep(3 * time.Second)
|
||||
// TELEMETRY
|
||||
telemetryReq := &pb.RequestWrapper{
|
||||
Payload: &pb.RequestWrapper_SendTelemetry{
|
||||
SendTelemetry: &pb.TelemetryData{
|
||||
DeviceId: "device-123",
|
||||
Timestamp: time.Now().Unix(),
|
||||
Temperature: 25,
|
||||
BatteryLevel: 70,
|
||||
},
|
||||
},
|
||||
}
|
||||
err = bin.WriteMessage(conn, telemetryReq)
|
||||
if err != nil {
|
||||
log.Fatalf("send telemetry: %v", err)
|
||||
} else {
|
||||
log.Println("telemetry sent")
|
||||
}
|
||||
|
||||
var telemetryResp pb.ResponseWrapper
|
||||
err = bin.ReadMessage(conn, &telemetryResp)
|
||||
if err != nil {
|
||||
log.Fatalf("bin.ReadMessage: %v", err)
|
||||
}
|
||||
if resp := telemetryResp.GetTelemetryResp(); resp != nil {
|
||||
log.Printf("server response on TelemetryData: %s\n", resp.GetResultCode().String())
|
||||
}
|
||||
time.Sleep(3 * time.Second)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user