https://p4gefau1t.github.io/trojan-go/developer/url/
()
| 68 | |
| 69 | // https://p4gefau1t.github.io/trojan-go/developer/url/ |
| 70 | func (t Trojan) Link() (link string) { |
| 71 | query := url.Values{} |
| 72 | if t.SNI != "" { |
| 73 | query.Set("sni", url.QueryEscape(t.SNI)) |
| 74 | } |
| 75 | |
| 76 | uri := url.URL{ |
| 77 | Scheme: "trojan", |
| 78 | User: url.User(url.QueryEscape(t.Password)), |
| 79 | Host: net.JoinHostPort(t.Server, strconv.Itoa(t.Port)), |
| 80 | RawQuery: query.Encode(), |
| 81 | Fragment: t.Name, |
| 82 | } |
| 83 | |
| 84 | return uri.String() |
| 85 | } |
| 86 | |
| 87 | func ParseTrojanLink(link string) (*Trojan, error) { |
| 88 | if !strings.HasPrefix(link, "trojan://") && !strings.HasPrefix(link, "trojan-go://") { |