Skip to content

Commit 42f55fb

Browse files
authored
docs: add documentation for afterListen server method (#5231)
1 parent e916b3b commit 42f55fb

File tree

3 files changed

+60
-4
lines changed

3 files changed

+60
-4
lines changed

packages/core/src/server/devServer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ export type RsbuildDevServer = {
8787
*/
8888
port: number;
8989
/**
90-
* Notify that the Rsbuild server has been started.
91-
* Rsbuild will trigger `onAfterStartDevServer` hook in this stage.
90+
* Notifies Rsbuild that the custom server has successfully started.
91+
* Rsbuild will trigger the `onAfterStartDevServer` hook at this stage.
9292
*/
9393
afterListen: () => Promise<void>;
9494
/**

website/docs/en/api/javascript-api/dev-server-api.mdx

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ async function startDevServer() {
5656
await rsbuildServer.afterListen();
5757
});
5858

59+
// Activate WebSocket connection
5960
rsbuildServer.connectWebSocket({ server });
6061
}
6162
```
@@ -127,8 +128,8 @@ type RsbuildDevServer = {
127128
*/
128129
port: number;
129130
/**
130-
* Notify that the Rsbuild server has been started.
131-
* Rsbuild will trigger `onAfterStartDevServer` hook in this stage.
131+
* Notifies Rsbuild that the custom server has successfully started.
132+
* Rsbuild will trigger the `onAfterStartDevServer` hook at this stage.
132133
*/
133134
afterListen: () => Promise<void>;
134135
/**
@@ -180,6 +181,27 @@ function CreateDevServer(
180181
): Promise<RsbuildDevServer>;
181182
```
182183

184+
### afterListen
185+
186+
- **Type:** `() => Promise<void>`
187+
188+
Notifies Rsbuild that the custom server has successfully started. Rsbuild will trigger the [onAfterStartDevServer](/plugins/dev/hooks#onafterstartdevserver) hook at this stage.
189+
190+
For example:
191+
192+
```ts
193+
import express from 'express';
194+
import { createRsbuild } from '@rsbuild/core';
195+
196+
const rsbuild = await createRsbuild();
197+
const rsbuildServer = await rsbuild.createDevServer();
198+
const app = express();
199+
200+
const server = app.listen(rsbuildServer.port, async () => {
201+
await rsbuildServer.afterListen();
202+
});
203+
```
204+
183205
### connectWebSocket
184206

185207
- **Type:**
@@ -204,7 +226,13 @@ When you use custom server, you may encounter HMR connection error problems. Thi
204226
At this time, you need to use the `connectWebSocket` method to enable Rsbuild to sense and process the WebSocket connection request from the browser.
205227

206228
```ts
229+
import express from 'express';
230+
import { createRsbuild } from '@rsbuild/core';
231+
232+
const rsbuild = await createRsbuild();
207233
const rsbuildServer = await rsbuild.createDevServer();
234+
const app = express();
235+
208236
const httpServer = app.listen(rsbuildServer.port);
209237

210238
rsbuildServer.connectWebSocket({ server: httpServer });

website/docs/zh/api/javascript-api/dev-server-api.mdx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ async function startDevServer() {
5656
await rsbuildServer.afterListen();
5757
});
5858

59+
// 激活 WebSocket 连接
5960
rsbuildServer.connectWebSocket({ server });
6061
}
6162
```
@@ -179,6 +180,27 @@ function CreateDevServer(
179180
): Promise<RsbuildDevServer>;
180181
```
181182

183+
### afterListen
184+
185+
- **类型:** `() => Promise<void>`
186+
187+
通知 Rsbuild 自定义的开发服务器已成功启动,Rsbuild 将在这个阶段触发 [onAfterStartDevServer](/plugins/dev/hooks#onafterstartdevserver) 钩子。
188+
189+
例如:
190+
191+
```ts
192+
import express from 'express';
193+
import { createRsbuild } from '@rsbuild/core';
194+
195+
const rsbuild = await createRsbuild();
196+
const rsbuildServer = await rsbuild.createDevServer();
197+
const app = express();
198+
199+
const server = app.listen(rsbuildServer.port, async () => {
200+
await rsbuildServer.afterListen();
201+
});
202+
```
203+
182204
### connectWebSocket
183205

184206
- **类型:**
@@ -201,7 +223,13 @@ Rsbuild 内置了 WebSocket 处理器以支持 HMR 功能:
201223
当你使用自定义 server 时,可能会遇到 HMR 连接失败的问题。这是因为自定义 server 未能将 WebSocket 连接请求正确转发至 Rsbuild 的 WebSocket 处理器。此时,你需要调用 `connectWebSocket` 方法来让 Rsbuild 能够接收并处理来自浏览器的 WebSocket 连接请求。
202224

203225
```ts
226+
import express from 'express';
227+
import { createRsbuild } from '@rsbuild/core';
228+
229+
const rsbuild = await createRsbuild();
204230
const rsbuildServer = await rsbuild.createDevServer();
231+
const app = express();
232+
205233
const httpServer = app.listen(rsbuildServer.port);
206234

207235
rsbuildServer.connectWebSocket({ server: httpServer });

0 commit comments

Comments
 (0)