Skip to content

Commit

Permalink
リトライが無効に設定されている場合は再接続の条件に一致してもクライアントにエラーを送信する
Browse files Browse the repository at this point in the history
  • Loading branch information
Hexa committed Feb 13, 2024
1 parent 2a4f84d commit ee2556d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
11 changes: 11 additions & 0 deletions amazon_transcribe_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,17 @@ func (h *AmazonTranscribeHandler) Handle(ctx context.Context, reader io.Reader)
Str("connection_id", h.ConnectionID).
Send()

// リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する
if !*at.Config.Retry {
if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil {
zlog.Error().
Err(err).
Str("channel_id", h.ChannelID).
Str("connection_id", h.ConnectionID).
Send()
}
}

err = ErrServerDisconnected
default:
// 再接続を想定している以外のエラーの場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する
Expand Down
14 changes: 13 additions & 1 deletion speech_to_text_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,24 @@ func (h *SpeechToTextHandler) Handle(ctx context.Context, reader io.Reader) (*io
code == codes.InvalidArgument ||
code == codes.ResourceExhausted {

err := fmt.Errorf(status.GetMessage())
zlog.Error().
Err(err).
Str("channel_id", h.ChannelID).
Str("connection_id", h.ConnectionID).
Int32("code", status.GetCode()).
Msg(status.GetMessage())
Send()

// リトライしない設定の場合はクライアントにエラーを返し、再度接続するかはクライアント側で判断する
if !*stt.Config.Retry {
if err := encoder.Encode(NewSuzuErrorResponse(err)); err != nil {
zlog.Error().
Err(err).
Str("channel_id", h.ChannelID).
Str("connection_id", h.ConnectionID).
Send()
}
}

w.CloseWithError(ErrServerDisconnected)
return
Expand Down

0 comments on commit ee2556d

Please sign in to comment.