( run: (socket: Socket.Socket) => Effect.Effect<void, Socket.SocketError, Scope.Scope> )
| 687 | }) |
| 688 | |
| 689 | const serveWebSocket = ( |
| 690 | run: (socket: Socket.Socket) => Effect.Effect<void, Socket.SocketError, Scope.Scope> |
| 691 | ) => |
| 692 | HttpRouter.add( |
| 693 | "GET", |
| 694 | "/", |
| 695 | Effect.gen(function*() { |
| 696 | const request = yield* HttpServerRequest.HttpServerRequest |
| 697 | const socket = yield* request.upgrade |
| 698 | yield* run(socket) |
| 699 | return HttpServerResponse.empty() |
| 700 | }) |
| 701 | ).pipe(HttpRouter.serve, Layer.build) |
| 702 | |
| 703 | const openWebSocket = (url: string) => |
| 704 | Effect.acquireRelease( |
no test coverage detected