msg

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2017 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeLogin         = 'o'
	TypeLoginResp     = '1'
	TypeNewProxy      = 'p'
	TypeNewProxyResp  = '2'
	TypeNewWorkConn   = 'w'
	TypeReqWorkConn   = 'r'
	TypeStartWorkConn = 's'
	TypePing          = 'h'
	TypePong          = '4'
	TypeUdpPacket     = 'u'
)

Variables

View Source
var (
	TypeMap       map[byte]reflect.Type
	TypeStringMap map[reflect.Type]byte
)
View Source
var (
	MaxMsgLength int64 = 10240
)

Functions

func Pack

func Pack(msg Message) ([]byte, error)

func ReadMsgInto

func ReadMsgInto(c io.Reader, msg Message) (err error)

func UnPackInto

func UnPackInto(buffer []byte, msg Message) (err error)

func WriteMsg

func WriteMsg(c io.Writer, msg interface{}) (err error)

Types

type Login

type Login struct {
	Version      string `json:"version"`
	Hostname     string `json:"hostname"`
	Os           string `json:"os"`
	Arch         string `json:"arch"`
	User         string `json:"user"`
	PrivilegeKey string `json:"privilege_key"`
	Timestamp    int64  `json:"timestamp"`
	RunId        string `json:"run_id"`

	// Some global configures.
	PoolCount int `json:"pool_count"`
}

When frpc start, client send this message to login to server.

type LoginResp

type LoginResp struct {
	Version string `json:"version"`
	RunId   string `json:"run_id"`
	Error   string `json:"error"`
}

type Message

type Message interface{}

Message wraps socket packages for communicating between frpc and frps.

func ReadMsg

func ReadMsg(c io.Reader) (msg Message, err error)

func UnPack

func UnPack(typeByte byte, buffer []byte) (msg Message, err error)

type NewProxy

type NewProxy struct {
	ProxyName      string `json:"proxy_name"`
	ProxyType      string `json:"proxy_type"`
	UseEncryption  bool   `json:"use_encryption"`
	UseCompression bool   `json:"use_compression"`

	// tcp and udp only
	RemotePort int64 `json:"remote_port"`

	// http and https only
	CustomDomains     []string `json:"custom_domains"`
	SubDomain         string   `json:"subdomain"`
	Locations         []string `json:"locations"`
	HostHeaderRewrite string   `json:"host_header_rewrite"`
	HttpUser          string   `json:"http_user"`
	HttpPwd           string   `json:"http_pwd"`
}

When frpc login success, send this message to frps for running a new proxy.

type NewProxyResp

type NewProxyResp struct {
	ProxyName string `json:"proxy_name"`
	Error     string `json:"error"`
}

type NewWorkConn

type NewWorkConn struct {
	RunId string `json:"run_id"`
}

type Ping

type Ping struct {
}

type Pong

type Pong struct {
}

type ReqWorkConn

type ReqWorkConn struct {
}

type StartWorkConn

type StartWorkConn struct {
	ProxyName string `json:"proxy_name"`
}

type UdpPacket

type UdpPacket struct {
	Content    string       `json:"c"`
	LocalAddr  *net.UDPAddr `json:"l"`
	RemoteAddr *net.UDPAddr `json:"r"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL