diff --git a/pkg/streamx/streamx_user_test.go b/pkg/streamx/streamx_user_test.go index 900dfb6119..c1a638bc83 100644 --- a/pkg/streamx/streamx_user_test.go +++ b/pkg/streamx/streamx_user_test.go @@ -628,7 +628,7 @@ func TestStreamingException(t *testing.T) { atomic.StoreInt32(&circuitBreaker, 0) // assert context deadline error - ctx, cancel := context.WithTimeout(octx, time.Millisecond) + ctx, cancel := context.WithTimeout(octx, 10*time.Millisecond) ctx, bs, err := cli.BidiStream(ctx) test.Assert(t, err == nil, err) res, err := bs.Recv(ctx) diff --git a/tool/internal_pkg/tpl/service.go b/tool/internal_pkg/tpl/service.go index d574c5d8ea..bd1fa825ea 100644 --- a/tool/internal_pkg/tpl/service.go +++ b/tool/internal_pkg/tpl/service.go @@ -144,6 +144,7 @@ func newServiceInfo(hasStreaming bool, keepStreamingMethods bool, keepNonStreami return svcInfo } +{{- $referToKitexServerInterface := and .StreamX .HasStreaming}} {{range .AllMethods}} {{- $isStreaming := or .ClientStreaming .ServerStreaming}} {{- $streamingUnary := (eq .Streaming.Mode "unary")}} @@ -153,6 +154,10 @@ func newServiceInfo(hasStreaming bool, keepStreamingMethods bool, keepNonStreami {{- $bidiSide := and .ClientStreaming .ServerStreaming}} {{- $arg := ""}} {{- $handlerFunc := ""}} +{{- $serverInterfaceName := printf "%s.%s" .PkgRefName .ServiceName }} + {{- if $referToKitexServerInterface}} + {{- $serverInterfaceName = .ServiceName}}{{/* when streamx is enabled and there are streaming methods, refer to Server Interface defined in service/server.go */}} + {{- end}} {{- $mode := ""}} {{- if $streamingUnary -}} {{- $mode = "serviceinfo.StreamingUnary" }} {{- $handlerFunc = "InvokeUnaryHandler" }} {{- else if $serverSide -}} {{- $mode = "serviceinfo.StreamingServer" }} {{- $handlerFunc = "InvokeServerStreamHandler" }} @@ -228,8 +233,8 @@ func {{LowerFirst .Name}}Handler(ctx context.Context, handler interface{}, arg, {{- end}} {{if gt .ArgsLength 0}}realArg := {{else}}_ = {{end}}arg.(*{{if not .GenArgResultStruct}}{{.PkgRefName}}.{{end}}{{.ArgStructName}}) {{if or (not .Void) .Exceptions}}realResult := result.(*{{if not .GenArgResultStruct}}{{.PkgRefName}}.{{end}}{{.ResStructName}}){{end}} - {{if .Void}}err := handler.({{.PkgRefName}}.{{.ServiceName}}).{{.Name}}(ctx{{range .Args}}, realArg.{{.Name}}{{end}}) - {{else}}success, err := handler.({{.PkgRefName}}.{{.ServiceName}}).{{.Name}}(ctx{{range .Args}}, realArg.{{.Name}}{{end}}) + {{if .Void}}err := handler.({{$serverInterfaceName}}).{{.Name}}(ctx{{range .Args}}, realArg.{{.Name}}{{end}}) + {{else}}success, err := handler.({{$serverInterfaceName}}).{{.Name}}(ctx{{range .Args}}, realArg.{{.Name}}{{end}}) {{end -}} if err != nil { {{- if $HandlerReturnKeepResp }}