66 lines
1.2 KiB
Go
Raw Normal View History

2016-01-18 14:37:42 -08:00
package main
import (
"bufio"
"errors"
"fmt"
"net"
//"encoding/hex"
. "github.com/tendermint/go-common"
"github.com/tendermint/tmsp/types"
)
func main() {
conn, err := Connect("unix://test.sock")
if err != nil {
Exit(err.Error())
}
// Make a bunch of requests
counter := 0
for i := 0; ; i++ {
2016-01-30 19:36:33 -08:00
req := types.RequestEcho("foobar")
2016-01-18 14:37:42 -08:00
_, err := makeRequest(conn, req)
if err != nil {
Exit(err.Error())
}
counter += 1
if counter%1000 == 0 {
fmt.Println(counter)
}
}
}
2016-01-30 19:36:33 -08:00
func makeRequest(conn net.Conn, req *types.Request) (*types.Response, error) {
2016-01-18 14:37:42 -08:00
var bufWriter = bufio.NewWriter(conn)
// Write desired request
2016-01-30 19:36:33 -08:00
err := types.WriteMessage(req, bufWriter)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-01-30 19:36:33 -08:00
err = types.WriteMessage(types.RequestFlush(), bufWriter)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
// Read desired response
2016-01-30 19:36:33 -08:00
var res = &types.Response{}
err = types.ReadMessage(conn, res)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-01-30 19:36:33 -08:00
var resFlush = &types.Response{}
err = types.ReadMessage(conn, resFlush)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-01-30 19:36:33 -08:00
if resFlush.Type != types.ResponseTypeFlush {
return nil, errors.New(Fmt("Expected flush response but got something else: %v", resFlush.Type))
2016-01-18 14:37:42 -08:00
}
return res, nil
}