From be2ac681dd6685f23dcef8e5d3116a7de0f0c4c6 Mon Sep 17 00:00:00 2001 From: Vladimir Dementyev Date: Tue, 16 Apr 2024 16:54:22 -0700 Subject: [PATCH] serverless: add signed streams --- docs/guides/serverless.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/docs/guides/serverless.md b/docs/guides/serverless.md index 37202eb..beb7900 100644 --- a/docs/guides/serverless.md +++ b/docs/guides/serverless.md @@ -58,7 +58,31 @@ const token = await identifier.generateToken({ userId }); ### Signed streams -_🛠️ Coming soon_. Check out the [signed streams documentation](../anycable-go/signed_streams.md)_. +SDK provides functionality to generate [signed stream names](/anycable-go/signed_streams). For that, you can create a _signer_ instance with the corresponding secret: + +```js +import { signer } from "@anycable/serverless-js"; + +const streamsSecret = process.env.ANYCABLE_STREAMS_SECRET; + +const sign = signer(secret); + +const signedStreamName = sign("room/13"); +``` + +Then, you can use the generated stream name with your client (using [AnyCable JS client SDK](https://github.com/anycable/anycable-client)): + +```js +import { createCable } from "@anycable/web"; + +const cable = createCable(WEBSOCKET_URL); +const stream = await fetchStreamForRoom("13"); + +const channel = cable.streamFromSigned(stream); +channel.on("message", (msg) => { + // handle notification +}) +``` ### Broadcasting