This commit is contained in:
unknown 2019-10-15 13:59:08 +08:00
parent 8f45d86cee
commit f4ae503982
2 changed files with 14 additions and 11 deletions

View File

@ -3,6 +3,7 @@ package core
import ( import (
"context" "context"
"errors" "errors"
"github.com/cnlh/nps/bridge"
"net" "net"
) )
@ -67,3 +68,11 @@ func (npsPlugin *NpsPlugin) End(ctx context.Context, config map[string]string) e
func (npsPlugin *NpsPlugin) GetClientConn(ctx context.Context) net.Conn { func (npsPlugin *NpsPlugin) GetClientConn(ctx context.Context) net.Conn {
return ctx.Value(CLIENT_CONNECTION).(net.Conn) return ctx.Value(CLIENT_CONNECTION).(net.Conn)
} }
func (npsPlugin *NpsPlugin) GetBridge(ctx context.Context) *bridge.Bridge {
return ctx.Value(BRIDGE).(*bridge.Bridge)
}
func (npsPlugin *NpsPlugin) GetClientId(ctx context.Context) int {
return ctx.Value(CLIENT_ID).(int)
}

View File

@ -2,7 +2,6 @@ package common
import ( import (
"context" "context"
"github.com/cnlh/nps/bridge"
"github.com/cnlh/nps/core" "github.com/cnlh/nps/core"
"net" "net"
) )
@ -20,25 +19,20 @@ func (proxy *Proxy) GetConfigName() *core.NpsConfigs {
func (proxy *Proxy) Run(ctx context.Context, config map[string]string) error { func (proxy *Proxy) Run(ctx context.Context, config map[string]string) error {
proxy.clientConn = proxy.GetClientConn(ctx) proxy.clientConn = proxy.GetClientConn(ctx)
proxy.ctx = ctx proxy.ctx = ctx
bg := ctx.Value(core.BRIDGE)
if bg == nil {
return core.BRIDGE_NOT_EXIST
}
clientCtxConn := ctx.Value(core.CLIENT_CONNECTION) clientCtxConn := ctx.Value(core.CLIENT_CONNECTION)
if clientCtxConn == nil { if clientCtxConn == nil {
return core.CLIENT_CONNECTION_NOT_EXIST return core.CLIENT_CONNECTION_NOT_EXIST
} }
clientId := ctx.Value(core.CLIENT_ID) clientId := proxy.GetClientId(ctx)
if clientId == nil {
return core.CLIENT_ID_NOT_EXIST
}
brg := bg.(*bridge.Bridge) brg := proxy.GetBridge(ctx)
severConn, err := brg.GetConnByClientId(clientId.(int)) severConn, err := brg.GetConnByClientId(clientId)
if err != nil { if err != nil {
return err return err
} }
go core.CopyBuffer(severConn, clientCtxConn.(net.Conn)) go core.CopyBuffer(severConn, clientCtxConn.(net.Conn))
core.CopyBuffer(clientCtxConn.(net.Conn), severConn) core.CopyBuffer(clientCtxConn.(net.Conn), severConn)
return nil return nil