代码改变世界

nps源码分析

2021-05-18 11:16  宋海宾  阅读(351)  评论(0)    收藏  举报

 

1.  InitConnectionService分析

  

func InitConnectionService() {
    bridgePort = beego.AppConfig.String("bridge_port")
    httpsPort = beego.AppConfig.String("https_proxy_port")
    httpPort = beego.AppConfig.String("http_proxy_port")
    webPort = beego.AppConfig.String("web_port")

    if httpPort == bridgePort || httpsPort == bridgePort || webPort == bridgePort {
        port, err := strconv.Atoi(bridgePort)
        if err != nil {
            logs.Error(err)
            os.Exit(0)
        }
        pMux = pmux.NewPortMux(port, beego.AppConfig.String("web_host"))
    }
}

 

bridge_port:
   默认8024,
 
http_proxy_port:
   默认80
 
https_proxy_port
  默认443 
 
web_port:

  默认8080

 

 

 

 

servers.go   

核心入口:StartNewServer

StartNewServer 调用Bridge.StartTunnel,创建全局Bridge,

StartNewServer(8024,)

 

 

bridge.go 

先调用NewTunnel

然后调用StartTunnel

StartTunnel  -->cliProcess --->typeDeal   ---> NewClient

最后NewMode