Closed davidvonthenen closed 5 months ago
[!WARNING]
Rate limit exceeded
@dvonthenen has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 29 minutes and 22 seconds before requesting another review.
How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.Commits
Files that changed from the base of the PR and between 03c264ac9fd98c0f57cd58ae0ad21f61201d9a86 and 4e87dbfa540f877548a45adce1478ec2387389b9.
The recent updates involve significant restructuring and enhancements of error handling for the listen
methods in both Client
and StreamClient
structs across different files. Constants related to retries and error conditions have been moved and updated, while new constants have been introduced to improve code clarity and management. The primary goal of these changes is to improve error handling and logging for websocket communications.
Files | Change Summary |
---|---|
pkg/client/live/client.go |
Updated listen() method to improve error handling, removed ticker initialization, and refined message handling. |
pkg/client/live/constants.go |
Moved retry and back-off related constants to the end and introduced a new constant invalidWebSocketMsgType . |
pkg/client/speak/client_stream.go |
Refactored listen() method with enhanced error handling, added read() method, and improved logging mechanisms. |
pkg/client/speak/constants.go |
Relocated defaultDelayBetweenRetry to internal constants and added invalidWebSocketMsgType constant. |
Client.listen()
with Enhanced Error HandlingsequenceDiagram
participant Client
participant WebSocket
participant CallbackHandler
Client->>WebSocket: Open Connection
loop Read Message
WebSocket-->>Client: Message or Error
alt Message Received
Client->>CallbackHandler: Inspect Message and Invoke Callback
else Error Occurred
alt Graceful Close
Client->>Client: Close Connection Gracefully
else Fatal Error
Client->>Client: Log and Handle Fatal Error
else Specific Error Condition
Client->>Client: Handle Specific Error
end
end
end
Client->>WebSocket: Close Connection
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Proposed changes
Removing dead code for v
1.4.0
as suggested here: https://github.com/deepgram/deepgram-go-sdk/issues/244#issuecomment-2182774904The change looks far more significant than it actually is. This deletes this section of code (https://github.com/deepgram/deepgram-go-sdk/blob/main/pkg/client/live/client.go#L301-L310) and then fixes the indentation which is why it looks like there are so many changes.
Also, removes emitting this error, for this error code, because it's actually an intended error: https://github.com/deepgram/deepgram-go-sdk/blob/main/pkg/client/live/client.go#L346-L350
Adds a simple non-interactive example:
examples/speak/stream/simple
Tested all examples and they appear to work as intented.
Types of changes
What types of changes does your code introduce to the community Go SDK? Put an
x
in the boxes that applyChecklist
Put an
x
in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.Further comments
Summary by CodeRabbit
New Features
Refactor
listen
method for better clarity and robustness.Chores