package
7.2.1
Repository: https://github.com/andeya/erpc.git
Documentation: pkg.go.dev

# README

proxy

A plugin for handling unknown calling or pushing.

Demo

package main

import (
	"time"

	"github.com/andeya/erpc/v7"
	"github.com/andeya/erpc/v7/plugin/proxy"
)

func main() {
	defer erpc.FlushLogger()
	srv := erpc.NewPeer(
		erpc.PeerConfig{
			ListenPort: 8080,
		},
		newUnknownProxy(),
	)
	srv.ListenAndServe()
}

func newUnknownProxy() erpc.Plugin {
	cli := erpc.NewPeer(erpc.PeerConfig{RedialTimes: 3})
	var sess erpc.Session
	var stat *erpc.Status
DIAL:
	sess, stat = cli.Dial(":9090")
	if !stat.OK() {
		erpc.Warnf("%v", stat)
		time.Sleep(time.Second * 3)
		goto DIAL
	}
	return proxy.NewPlugin(func(*proxy.Label) proxy.Forwarder {
		return sess
	})
}