From e9af9bc115e0869570b9b79e1610b2bc08abe5a1 Mon Sep 17 00:00:00 2001 From: hozan23 <119854621+hozan23@users.noreply.github.com> Date: Thu, 13 Jun 2024 14:51:54 +0200 Subject: Create .github/workflows/go.yml --- example_test.go | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 example_test.go (limited to 'example_test.go') diff --git a/example_test.go b/example_test.go new file mode 100644 index 0000000..ca4a642 --- /dev/null +++ b/example_test.go @@ -0,0 +1,70 @@ +package karyongo + +import ( + "encoding/json" + "math/rand/v2" + "os" + "time" + + rpc "github.com/karyontech/karyon-go/jsonrpc/client" + log "github.com/sirupsen/logrus" +) + +type Pong struct{} + +func runNewClient() error { + config := rpc.RPCClientConfig{ + Addr: "ws://127.0.0.1:6000", + } + + client, err := rpc.NewRPCClient(config) + if err != nil { + return err + } + defer client.Close() + + subID, ch, err := client.Subscribe("Calc.log_subscribe", nil) + if err != nil { + return err + } + log.Infof("Subscribed successfully: %d\n", subID) + + go func() { + for notification := range ch { + log.Infof("Receive new notification: %s\n", notification) + } + }() + + for { + millisecond := rand.IntN(2000-500) + 500 + time.Sleep(time.Duration(millisecond) * time.Millisecond) + result, err := client.Call("Calc.ping", nil) + if err != nil { + return err + } + + pongMsg := Pong{} + err = json.Unmarshal(*result, &pongMsg) + if err != nil { + return err + } + } + +} + +func main() { + lvl, ok := os.LookupEnv("LOG_LEVEL") + if !ok { + lvl = "debug" + } + ll, err := log.ParseLevel(lvl) + if err != nil { + ll = log.DebugLevel + } + log.SetLevel(ll) + + err = runNewClient() + if err != nil { + log.Fatal(err) + } +} -- cgit v1.2.3