mirror of
https://github.com/eosswedenorg/thalos
synced 2026-07-03 11:53:41 +02:00
Adding docs/basic-usage/go/main.go
This commit is contained in:
parent
3dfb53b5fa
commit
03ab664130
1 changed files with 59 additions and 0 deletions
59
docs/basic-usage/go/main.go
Normal file
59
docs/basic-usage/go/main.go
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"os/signal"
|
||||||
|
|
||||||
|
"github.com/eosswedenorg/thalos/api"
|
||||||
|
"github.com/eosswedenorg/thalos/api/message"
|
||||||
|
_ "github.com/eosswedenorg/thalos/api/message/json"
|
||||||
|
api_redis "github.com/eosswedenorg/thalos/api/redis"
|
||||||
|
|
||||||
|
"github.com/go-redis/redis/v8"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Create redis client
|
||||||
|
rdb := redis.NewClient(&redis.Options{})
|
||||||
|
|
||||||
|
sub := api_redis.NewSubscriber(rdb, api_redis.Namespace{
|
||||||
|
Prefix: "ship",
|
||||||
|
ChainID: "1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4", // Wax mainnet.
|
||||||
|
})
|
||||||
|
|
||||||
|
codec, err := message.GetCodec("json")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Failed to get json codec")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
client := api.NewClient(sub, codec.Decoder)
|
||||||
|
|
||||||
|
client.OnAction = func(act message.ActionTrace) {
|
||||||
|
fmt.Println("ActionTrace")
|
||||||
|
fmt.Println(act)
|
||||||
|
fmt.Println("---")
|
||||||
|
}
|
||||||
|
|
||||||
|
client.OnHeartbeat = func(hb message.HeartBeat) {
|
||||||
|
fmt.Println("HeartBeat -- block:", hb.BlockNum, "head:", hb.HeadBlockNum, "lib:", hb.LastIrreversibleBlockNum)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Subscribe to some stuffs.
|
||||||
|
client.Subscribe(api.ActionChannel{Contract: "eosio"}.Channel())
|
||||||
|
client.Subscribe(api.ActionChannel{Name: "mine"}.Channel())
|
||||||
|
client.Subscribe(api.HeartbeatChannel)
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
sig := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(sig, os.Interrupt)
|
||||||
|
|
||||||
|
<-sig
|
||||||
|
fmt.Println("Got interrupt")
|
||||||
|
client.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
|
// Read stuff.
|
||||||
|
client.Run()
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue