@@ -51,70 +51,6 @@ func (h *SvcCustomSubjectHandler) MtNoRequestPublish(pkginstance string, msg Sim
51
51
return h .nc .Publish (subject , rawMsg )
52
52
}
53
53
54
- func (h * SvcCustomSubjectHandler ) MtStreamedReplyHandler (
55
- ctx context.Context , request * nrpc.Request , req StringArg ) {
56
- ctx , cancel := context .WithCancel (ctx )
57
-
58
- keepStreamAlive := nrpc .NewKeepStreamAlive (
59
- request .Conn , request .ReplySubject , request .Encoding , cancel ,
60
- )
61
-
62
- var msgCount uint32
63
-
64
- _ , nrpcErr := nrpc .CaptureErrors (func () (proto.Message , error ) {
65
- err := h .server .MtStreamedReply (ctx , req , func (rep SimpleStringReply ){
66
- if err := request .SendReply (& rep , nil ); err != nil {
67
- log .Printf ("nrpc: error publishing response" )
68
- cancel ()
69
- return
70
- }
71
- msgCount ++
72
- })
73
- return nil , err
74
- })
75
- keepStreamAlive .Stop ()
76
-
77
- if nrpcErr != nil {
78
- request .SendReply (nil , nrpcErr )
79
- } else {
80
- request .SendReply (
81
- nil , & nrpc.Error {Type : nrpc .Error_EOS , MsgCount : msgCount },
82
- )
83
- }
84
- }
85
-
86
- func (h * SvcCustomSubjectHandler ) MtVoidReqStreamedReplyHandler (
87
- ctx context.Context , request * nrpc.Request ) {
88
- ctx , cancel := context .WithCancel (ctx )
89
-
90
- keepStreamAlive := nrpc .NewKeepStreamAlive (
91
- request .Conn , request .ReplySubject , request .Encoding , cancel ,
92
- )
93
-
94
- var msgCount uint32
95
-
96
- _ , nrpcErr := nrpc .CaptureErrors (func () (proto.Message , error ) {
97
- err := h .server .MtVoidReqStreamedReply (ctx , func (rep SimpleStringReply ){
98
- if err := request .SendReply (& rep , nil ); err != nil {
99
- log .Printf ("nrpc: error publishing response" )
100
- cancel ()
101
- return
102
- }
103
- msgCount ++
104
- })
105
- return nil , err
106
- })
107
- keepStreamAlive .Stop ()
108
-
109
- if nrpcErr != nil {
110
- request .SendReply (nil , nrpcErr )
111
- } else {
112
- request .SendReply (
113
- nil , & nrpc.Error {Type : nrpc .Error_EOS , MsgCount : msgCount },
114
- )
115
- }
116
- }
117
-
118
54
func (h * SvcCustomSubjectHandler ) Handler (msg * nats.Msg ) {
119
55
request := nrpc .NewRequest (h .ctx , h .nc , msg .Subject , msg .Reply )
120
56
// extract method name & encoding from subject
@@ -194,8 +130,13 @@ func (h *SvcCustomSubjectHandler) Handler(msg *nats.Msg) {
194
130
Message : "bad request received: " + err .Error (),
195
131
}
196
132
} else {
197
- h .MtStreamedReplyHandler (h .ctx , request , req )
198
- return
133
+ request .SetupStreamedReply ()
134
+ request .Handler = func (ctx context.Context )(proto.Message , error ){
135
+ err := h .server .MtStreamedReply (ctx , req , func (rep SimpleStringReply ){
136
+ request .SendStreamReply (& rep )
137
+ })
138
+ return nil , err
139
+ }
199
140
}
200
141
case "mtvoidreqstreamedreply" :
201
142
_ , request .Encoding , err = nrpc .ParseSubjectTail (0 , request .SubjectTail )
@@ -211,8 +152,13 @@ func (h *SvcCustomSubjectHandler) Handler(msg *nats.Msg) {
211
152
Message : "bad request received: " + err .Error (),
212
153
}
213
154
} else {
214
- h .MtVoidReqStreamedReplyHandler (h .ctx , request )
215
- return
155
+ request .SetupStreamedReply ()
156
+ request .Handler = func (ctx context.Context )(proto.Message , error ){
157
+ err := h .server .MtVoidReqStreamedReply (ctx , func (rep SimpleStringReply ){
158
+ request .SendStreamReply (& rep )
159
+ })
160
+ return nil , err
161
+ }
216
162
}
217
163
default :
218
164
log .Printf ("SvcCustomSubjectHandler: unknown name %q" , name )
@@ -428,38 +374,6 @@ func (h *SvcSubjectParamsHandler) Subject() string {
428
374
return "root.*.svcsubjectparams.*.>"
429
375
}
430
376
431
- func (h * SvcSubjectParamsHandler ) MtStreamedReplyWithSubjectParamsHandler (
432
- ctx context.Context , request * nrpc.Request , mtParams []string ) {
433
- ctx , cancel := context .WithCancel (ctx )
434
-
435
- keepStreamAlive := nrpc .NewKeepStreamAlive (
436
- request .Conn , request .ReplySubject , request .Encoding , cancel ,
437
- )
438
-
439
- var msgCount uint32
440
-
441
- _ , nrpcErr := nrpc .CaptureErrors (func () (proto.Message , error ) {
442
- err := h .server .MtStreamedReplyWithSubjectParams (ctx , mtParams [0 ], mtParams [1 ], func (rep SimpleStringReply ){
443
- if err := request .SendReply (& rep , nil ); err != nil {
444
- log .Printf ("nrpc: error publishing response" )
445
- cancel ()
446
- return
447
- }
448
- msgCount ++
449
- })
450
- return nil , err
451
- })
452
- keepStreamAlive .Stop ()
453
-
454
- if nrpcErr != nil {
455
- request .SendReply (nil , nrpcErr )
456
- } else {
457
- request .SendReply (
458
- nil , & nrpc.Error {Type : nrpc .Error_EOS , MsgCount : msgCount },
459
- )
460
- }
461
- }
462
-
463
377
func (h * SvcSubjectParamsHandler ) MtNoRequestWParamsPublish (pkginstance string , svcclientid string , mtmp1 string , msg SimpleStringReply ) error {
464
378
rawMsg , err := nrpc .Marshal ("protobuf" , & msg )
465
379
if err != nil {
@@ -526,8 +440,13 @@ func (h *SvcSubjectParamsHandler) Handler(msg *nats.Msg) {
526
440
Message : "bad request received: " + err .Error (),
527
441
}
528
442
} else {
529
- h .MtStreamedReplyWithSubjectParamsHandler (h .ctx , request , mtParams )
530
- return
443
+ request .SetupStreamedReply ()
444
+ request .Handler = func (ctx context.Context )(proto.Message , error ){
445
+ err := h .server .MtStreamedReplyWithSubjectParams (ctx , mtParams [0 ], mtParams [1 ], func (rep SimpleStringReply ){
446
+ request .SendStreamReply (& rep )
447
+ })
448
+ return nil , err
449
+ }
531
450
}
532
451
case "mtnoreply" :
533
452
request .NoReply = true
0 commit comments