This is the code and template for the simple-websocket-chat-app. There are three functions contained within the directories and a CloudFormation template that wires them up to a DynamoDB table and provides the minimal set of permissions needed to run the app:
├── Makefile
├── README.md <-- This instructions file
├── lambdas
│ ├── lambdas.yaml <-- Resources including DDB/WebSocket API/Lambda Functions
│ ├── onconnect <-- onConnect Function
│ ├── ondisconnect <-- onDisconnect Function
│ ├── package.json
│ └── sendmessage <-- sendMessage Function
└── template.yaml <-- Master stack template
Using aws configure
to set your AWS account credentials.
There is already a Makefile
in the root directory, so a simple make
command will be enough for package -> deploy -> describe stack
.
You could go into the Makefile
to check the specific commands.
To test the WebSocket API, you can use wscat, an open-source command line tool.
- Install NPM.
- Install wscat:
$ npm install -g wscat
- On the console, connect to your published API endpoint by executing the following command:
$ wscat -c wss://{YOUR-API-ID}.execute-api.{YOUR-REGION}.amazonaws.com/{STAGE}
- To test the sendMessage function, send a JSON message like the following example. The Lambda function sends it back using the callback URL:
$ wscat -c wss://{YOUR-API-ID}.execute-api.{YOUR-REGION}.amazonaws.com/prod
connected (press CTRL+C to quit)
> {"action":"sendmessage", "data":"hello world"}
< hello world
This sample code is made available under a modified MIT license. See the LICENSE file.