package
4.2.0+incompatible
Repository: https://github.com/bnyu/erpc.git
Documentation: pkg.go.dev

# README

tps

tps statistics requests per second.

Usage

import tps "github.com/henrylee2cn/tp-ext/plugin-tps"

Test

package tps

import (
	"testing"
	"time"

	tp "github.com/henrylee2cn/teleport"
)

type Call struct {
	tp.CallCtx
}

func (*Call) Test(*struct{}) (*struct{}, *tp.Rerror) {
	return nil, nil
}

type Push struct {
	tp.PushCtx
}

func (*Push) Test(*struct{}) *tp.Rerror {
	return nil
}

func TestTPS(t *testing.T) {
	tp.SetLoggerLevel("OFF")
	// Server
	srv := tp.NewPeer(tp.PeerConfig{ListenPort: 9090}, NewTPS(5))
	srv.RouteCall(new(Call))
	srv.RoutePush(new(Push))
	go srv.ListenAndServe()
	time.Sleep(1e9)

	// Client
	cli := tp.NewPeer(tp.PeerConfig{})
	sess, err := cli.Dial(":9090")
	if err != nil {
		if err != nil {
			t.Error(err)
		}
	}
	var (
		rerr   *tp.Rerror
		ticker = time.NewTicker(time.Millisecond * 10)
	)
	for i := 0; i < 1<<10; i++ {
		<-ticker.C
		rerr = sess.Call("/call/test", nil, nil).Rerror()
		if rerr != nil {
			t.Error(rerr)
		}
		rerr = sess.Push("/push/test", nil)
		if rerr != nil {
			t.Error(rerr)
		}
	}
}

test command:

go test -v -run=TestTPS

# Functions

No description provided by the author

# Structs

No description provided by the author