Websocket support for Serverless Framework on AWS
Clone or download
Latest commit 0c7f62e Jan 21, 2019

README.md

Serverless Websockets Plugin

1. Installation

Install the plugin by adding it to your service dependencies:

npm i serverless-websockets-plugin --save

Note: Because this plugin uses the new ApiGatewayV2 service in the AWS SDK, it requires v1.35.0+ of the Serverless Framework.

2. Usage

Load the serverless-websockets-plugin, then optionally provide a new API name and Route Selection Expression, and finally define your WebSockets events and their route keys:

service: serverless-websockets-service

# Load the plugin
plugins:
  - serverless-websockets-plugin

provider:
  name: aws
  runtime: nodejs8.10
  
  # Optional
  websocketApiName: foobar
  websocketApiRouteSelectionExpression: $request.body.action

functions:
  connectionManagement:
    handler: handler.connectionManagement
    events:
      - websocket:
          routeKey: $connect
      - websocket:
          routeKey: $disconnect
  defaultMessage:
    handler: handler.default
    events:
      - websocket:
          routeKey: $default
  chatMessage:
    handler: handler.chat
    events:
      - websocket:
          routeKey: message
  twoWayMessage:
    handler: handler.twoWay
    events:
      - websocket:
          routeKey: twoway
          # The property below will enable an integration response in the API Gateway.
          # See https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html
          routeResponseSelectionExpression: $default