mirror of
https://github.com/ehang-io/nps.git
synced 2025-07-03 13:10:42 +00:00
module
This commit is contained in:
parent
8f45d86cee
commit
f4ae503982
@ -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)
|
||||||
|
}
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user