Skip to content

feat(data): add publish events over WebSocket#14242

Merged
zxl629 merged 16 commits intomainfrom
feat/websocket-publish/main
Mar 12, 2025
Merged

feat(data): add publish events over WebSocket#14242
zxl629 merged 16 commits intomainfrom
feat/websocket-publish/main

Conversation

@zxl629
Copy link
Copy Markdown
Contributor

@zxl629 zxl629 commented Feb 25, 2025

Description of changes

Add support to publish events over WebSocket connection for Amplify events client. Customers can now perform the following operations to publish their events.

// WSS Connect 
const channel = await events.connect("test/events");

// WSS publish events
await channel.publish(
      { key: "my event content" },
      { authMode: "identityPool" }
);

// WSS publish events batch
await channel.publish([1, 2, 3], { authMode: "identityPool" });

Description of how you validated changes

Checklist

  • PR description included
  • yarn test passes
  • Unit Tests are changed or added
  • Relevant documentation is changed or added (and PR referenced)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@zxl629 zxl629 marked this pull request as ready for review February 25, 2025 17:09
@zxl629 zxl629 requested a review from a team as a code owner February 25, 2025 17:09
@@ -70,7 +70,7 @@ async function connect(
};

// WS publish is not enabled in the service yet. It will be a follow up feature
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we adjust this comment?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this comment has been removed.

@zxl629 zxl629 requested a review from blakedunson February 27, 2025 18:33
@zxl629 zxl629 requested a review from iartemiev March 3, 2025 22:20
Copy link
Copy Markdown
Contributor

@stocaaro stocaaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We discussed offline how I would expect event.connect should allow both publish and subscribe until the channel has been closed, after which neither publish nor subscribe should work. With multi-channel, there are oddities around how this works in this implementation.

This change adds publish events to websockets. There should be tests added for this on the provider tests.

@zxl629 zxl629 requested a review from stocaaro March 7, 2025 08:10
return super.publish(options, customUserAgentDetails);
}

public closeIfNoActiveChannel() {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class/abstraction doesn't know about channels and the channel check is on the outer call. Can we rename this, maybe "closeIfNoActiveSubscription"?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking around, I suppose we do have channel params in the query params. I still think this is checking subs, not channels.

@zxl629 zxl629 requested a review from stocaaro March 11, 2025 16:40
Copy link
Copy Markdown
Contributor

@stocaaro stocaaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zxl629 zxl629 merged commit e10bf3b into main Mar 12, 2025
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants