MCPcopy
hub / github.com/MetaCubeX/mihomo / StartMultiplexClient

Function StartMultiplexClient

transport/sudoku/multiplex.go:14–29  ·  view source on GitHub ↗

StartMultiplexClient upgrades an already-handshaked Sudoku tunnel into a multiplex session.

(conn net.Conn)

Source from the content-addressed store, hash-verified

12
13// StartMultiplexClient upgrades an already-handshaked Sudoku tunnel into a multiplex session.
14func StartMultiplexClient(conn net.Conn) (*MultiplexClient, error) {
15 if conn == nil {
16 return nil, fmt.Errorf("nil conn")
17 }
18
19 if err := WriteKIPMessage(conn, KIPTypeStartMux, nil); err != nil {
20 return nil, fmt.Errorf("write mux start failed: %w", err)
21 }
22
23 sess, err := multiplex.NewClientSession(conn)
24 if err != nil {
25 return nil, fmt.Errorf("start multiplex session failed: %w", err)
26 }
27
28 return &MultiplexClient{sess: sess}, nil
29}
30
31type MultiplexClient struct {
32 sess *multiplex.Session

Callers 2

getOrCreateMuxClientMethod · 0.92
TestMultiplex_TCP_EchoFunction · 0.85

Calls 2

NewClientSessionFunction · 0.92
WriteKIPMessageFunction · 0.85

Tested by 1

TestMultiplex_TCP_EchoFunction · 0.68