From b1f483c17d7c0288f5787e21dc523085a3d9c25c Mon Sep 17 00:00:00 2001 From: Bailey Tincher Date: Fri, 30 Apr 2021 00:04:55 -0500 Subject: [PATCH] Send error responses for socket clients (#205) * Send errors from server * Ensure messages are not blank in client --- client/src/socket/client.ts | 2 +- client/yarn.lock | 2 +- server/package.json | 2 +- server/serverless.yml | 11 +++++++++++ server/src/socket/client-management.ts | 2 +- server/yarn.lock | 8 ++++---- 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/client/src/socket/client.ts b/client/src/socket/client.ts index 8c42bbb..f9b46b2 100644 --- a/client/src/socket/client.ts +++ b/client/src/socket/client.ts @@ -135,7 +135,7 @@ export class ActuallyColabSocketClient extends EventEmitter { - if (typeof message.data === 'string') { + if (typeof message.data === 'string' && message.data !== '') { const eventData: ActuallyColabEventData = JSON.parse(message.data); switch (eventData.action) { case 'notebook_opened': { diff --git a/client/yarn.lock b/client/yarn.lock index 84708e7..8f32fa7 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -3,7 +3,7 @@ "@actually-colab/editor-types@file:../types": - version "0.1.0" + version "0.2.1" "@types/anymatch@*": version "1.3.1" diff --git a/server/package.json b/server/package.json index 77fd538..a94318f 100644 --- a/server/package.json +++ b/server/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "@shallot/aws": "^1.0.6", - "@shallot/aws-websocket-wrapper": "^1.0.7", + "@shallot/aws-websocket-wrapper": "^1.0.9", "@shallot/http-error-handler": "^1.0.2", "@shallot/rest-wrapper": "^1.1.3", "aws-sdk": "^2.842.0", diff --git a/server/serverless.yml b/server/serverless.yml index eca4658..63b1b14 100644 --- a/server/serverless.yml +++ b/server/serverless.yml @@ -213,6 +213,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: open_notebook socket-close-notebook: @@ -220,6 +221,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: close_notebook socket-share-notebook: @@ -227,6 +229,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: share_notebook socket-edit-cell: @@ -234,6 +237,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: edit_cell socket-create-cell: @@ -241,6 +245,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: create_cell socket-lock-cell: @@ -248,6 +253,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: lock_cell socket-unlock-cell: @@ -255,6 +261,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: unlock_cell socket-update-output: @@ -262,6 +269,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: update_output socket-share-workshop: @@ -269,6 +277,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: share_workshop socket-start-workshop: @@ -276,6 +285,7 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: start_workshop send_chat_message: @@ -283,4 +293,5 @@ functions: events: - websocket: + routeResponseSelectionExpression: $default route: send_chat_message diff --git a/server/src/socket/client-management.ts b/server/src/socket/client-management.ts index 0459621..0745303 100644 --- a/server/src/socket/client-management.ts +++ b/server/src/socket/client-management.ts @@ -4,7 +4,7 @@ import type { DUser, DActiveSession, } from '@actually-colab/editor-types'; -import type { WebSocketRequestContext } from './connection'; +import type { WebSocketRequestContext } from '@shallot/aws-websocket-wrapper'; import { ApiGatewayManagementApi } from 'aws-sdk'; diff --git a/server/yarn.lock b/server/yarn.lock index a812de8..ce1ba50 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -601,10 +601,10 @@ uuid "^8.3.2" write-file-atomic "^3.0.3" -"@shallot/aws-websocket-wrapper@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@shallot/aws-websocket-wrapper/-/aws-websocket-wrapper-1.0.7.tgz#1595fe5aa22c1e9099af82b0173eebbe09ca3c40" - integrity sha512-cHLGBrBkA4NW7xgbaCbmdM9h3TFznb3aPdvQIx2Ahjp3YGSDHR7/3ASrlDA26xEFgrsaIjD0idreMk2fVJ3pqw== +"@shallot/aws-websocket-wrapper@^1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@shallot/aws-websocket-wrapper/-/aws-websocket-wrapper-1.0.9.tgz#3eeabc54ae208d0548bf2c6c64dfa14db47680a1" + integrity sha512-0gLd4/pQanbvMhJrokgA1gahZPlvtgHSpXGGK9hRfaxmOKNfwp4rHci9MINGfWzgpyznlcs+twpRHDowk5tauA== dependencies: "@shallot/aws" "^1.0.6" "@shallot/http-error-handler" "^1.0.2"