Skip to content

I am getting an error when using websocket. #480

@jclab-joseph

Description

@jclab-joseph

serverless.yaml:

plugins:
  - serverless-plugin-typescript
  - serverless-apigw-binary
  - serverless-offline

functions:
  api:
    handler: src/index.handler
    events:
      - http:
          path: /{proxy+}
          method: any
      - websocket:
          route: $connect
          #routeResponseSelectionExpression: $default # optional, setting this enables callbacks on websocket requests for two-way communication
      - websocket:
          route: $disconnect

  TypeError: Cannot read property 'replace' of undefined
      at getPathWithQueryStringParams (D:\project\node_modules\@vendia\serverless-express\src\event-sources\utils.js:13:20)
      at getRequestValuesFromEvent (D:\project\node_modules\@vendia\serverless-express\src\event-sources\utils.js:29:10)
      at Object.getRequestValuesFromApiGatewayEvent [as getRequest] (D:\project\node_modules\@vendia\serverless-express\src\event-sources\aws\api-gateway-v
1.js:3:60)
      at forwardRequestToNodeServer (D:\project\node_modules\@vendia\serverless-express\src\transport.js:147:37)
      at D:\project\node_modules\@vendia\serverless-express\src\configure.js:73:9
      at new Promise (<anonymous>)
      at proxy (D:\project\node_modules\@vendia\serverless-express\src\configure.js:60:12)
      at handler (D:\project\node_modules\@vendia\serverless-express\src\configure.js:99:12)
      at D:\project\.build\src\index.js:59:12
      at Generator.next (<anonymous>)
      at fulfilled (D:\project\.build\src\index.js:5:58)
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

event & context:

{
  event: {
    headers: {
      Host: '127.0.0.1:3001',
      Connection: 'Upgrade',
      Pragma: 'no-cache',
      'Cache-Control': 'no-cache',
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
      Upgrade: 'websocket',
      Origin: 'http://127.0.0.1:3000',
      'Sec-WebSocket-Version': '13',
      'Accept-Encoding': 'gzip, deflate, br',
      'Accept-Language': 'ko-KR,ko;q=0.9',
      'Sec-WebSocket-Key': '4R8Snu0qu8Hyp8X4CfBxjA==',
      'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits'
    },
    isBase64Encoded: false,
    multiValueHeaders: {
      Host: [Array],
      Connection: [Array],
      Pragma: [Array],
      'Cache-Control': [Array],
      'User-Agent': [Array],
      Upgrade: [Array],
      Origin: [Array],
      'Sec-WebSocket-Version': [Array],
      'Accept-Encoding': [Array],
      'Accept-Language': [Array],
      Cookie: [Array],
      'Sec-WebSocket-Key': [Array],
      'Sec-WebSocket-Extensions': [Array]
    },
    requestContext: {
      apiId: 'private',
      connectedAt: 1636205815771,
      connectionId: 'ckvnup3h600006gvw5xz82fey',
      domainName: 'localhost',
      eventType: 'CONNECT',
      extendedRequestId: 'ckvnup3h700016gvw4571bpes',
      identity: [Object],
      messageDirection: 'IN',
      messageId: 'ckvnup3h700026gvwb7ep3kv8',
      requestId: 'ckvnup3h700036gvw1jtv3z4y',
      requestTime: '06/Nov/2021:22:36:55 +0900',
      requestTimeEpoch: 1636205815771,
      routeKey: '$connect',
      stage: 'local'
    }
  },
  context: {
    awsRequestId: 'ckvnup3hb00046gvwf3qa4bl3',
    callbackWaitsForEmptyEventLoop: true,
    clientContext: null,
    functionName: 'blog-post-dev-api',
    functionVersion: '$LATEST',
    identity: undefined,
    invokedFunctionArn: 'offline_invokedFunctionArn_for_blog-post-dev-api',
    logGroupName: 'offline_logGroupName_for_blog-post-dev-api',
    logStreamName: 'offline_logStreamName_for_blog-post-dev-api',
    memoryLimitInMB: '1024',
    getRemainingTimeInMillis: [Function: getRemainingTimeInMillis],
    done: [Function: done],
    fail: [Function: fail],
    succeed: [Function: succeed]
  }
}

Is there any way to use websockets?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions