diff --git a/Sources/App/Features/Engage/EngageRouteController.swift b/Sources/App/Features/Engage/EngageRouteController.swift new file mode 100644 index 00000000..d87d8c6e --- /dev/null +++ b/Sources/App/Features/Engage/EngageRouteController.swift @@ -0,0 +1,17 @@ +import Vapor + +struct EngageRouteController: RouteCollection { + func boot(routes: any RoutesBuilder) throws { + routes.webSocket("engage") { req, ws in + ws.pingInterval = .seconds(50) + + ws.onBinary { ws, message in + ws.send("received") + } + + ws.onText { ws, message in + ws.send("received") + } + } + } +} diff --git a/Sources/App/routes.swift b/Sources/App/routes.swift index 132ee8f2..9f8cbd1a 100644 --- a/Sources/App/routes.swift +++ b/Sources/App/routes.swift @@ -45,6 +45,7 @@ func routes(_ app: Application) throws { try app.routes.register(collection: TicketLoginController()) try app.routes.register(collection: TicketHubRouteController()) try app.routes.register(collection: PurchaseRouteController()) + try app.routes.register(collection: EngageRouteController()) // MARK: - API Routes