数据通过Socket通信,主要以Json格式数据为主。
在数据的开头,有2个分别以64bit的无符号整型<message length><message payload>
表示数据的长度和负载。
数据格式:
type Auth struct {
Version string // protocol version
MmVersion string // major/minor software version (informational only)
User string
Password string
OS string
Arch string
ClientId string // empty for new sessions
}
AuthResp
type AuthResp struct {
Version string
MmVersion string
ClientId string
Error string
}
ReqTunnel
type ReqTunnel struct {
ReqId string
Protocol string
// http only
Hostname string
Subdomain string
HttpAuth string
// tcp only
RemotePort uint16
}
NewTunnel
type NewTunnel struct {
ReqId string
Url string
Protocol string
Error string
}
ReqProxy
type ReqProxy struct {
}
RegProxy
type RegProxy struct {
ClientId string
}
StartProxy
type StartProxy struct {
Url string // URL of the tunnel this connection connection is being proxied for
ClientAddr string // Network address of the client initiating the connection to the tunnel
}
Ping
type Ping struct {
}
Pong
type Pong struct {
}
来源https://my.oschina.net/jianming/blog/1633243