Skip to content

Commit

Permalink
router -> server
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma committed Dec 12, 2023
1 parent 4933d16 commit d4174d3
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 17 deletions.
4 changes: 2 additions & 2 deletions .vitepress/config/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -325,8 +325,8 @@
"text": "插件系统 (Registry)",
"link": "/api/service/registry.md"
}, {
"text": "网络服务 (Router)",
"link": "/api/service/router.md"
"text": "网络服务 (Server)",
"link": "/api/service/server.md"
}]
}, {
"text": "平台资源",
Expand Down
2 changes: 1 addition & 1 deletion zh-CN/api/core/context.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ Koishi 使用了组合 (Compose) 的开发方式,绝大部分上下文属性
- [ctx.parallel](../service/events.md#ctx-parallel)
- [ctx.permissions](../service/permissions.md)
- [ctx.plugin](../service/registry.md#ctx-plugin)
- [ctx.router](../service/router.md)
- [ctx.scope](../service/registry.md#ctx-scope)
- [ctx.serial](../service/events.md#ctx-serial)
- [ctx.server](../service/server.md)
- [ctx.start](../service/registry.md#ctx-start)
- [ctx.stop](../service/registry.md#ctx-stop)
- [ctx.union](../service/filter.md#ctx-union)
Expand Down
2 changes: 1 addition & 1 deletion zh-CN/api/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Koishi 设计了一整套对象关系映射 (ORM) 接口,它易于扩展并广

## 路由 (Router)

- [API > 内置服务 > 网络服务](./service/router.md)
- [API > 内置服务 > 网络服务](./service/server.md)

## 配置构型 (Schema)

Expand Down
10 changes: 5 additions & 5 deletions zh-CN/api/service/router.md → zh-CN/api/service/server.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# 网络服务 (Router)
# 网络服务 (Server)

::: danger
`ctx.router` 需要手动声明为 `inject`。在未来的版本,我们将会把此服务移至插件中。
`ctx.server` 需要手动声明为 `inject`。在未来的版本,我们将会把此服务移至插件中。
:::

::: tip
Koishi 默认情况下并不会监听任何端口,如要启用网络服务请记得配置 [`options.port`](../core/app.md#options-port)
:::

`ctx.router` 是 Koishi 的内置服务,提供了一个基于 [Koa Router](https://github.com/koajs/router) 的简单路由系统,用于管理 Koishi 应用收到的网络请求。除了 Koa Router 所支持的部分方法外,Router API 还提供了一些额外的功能,例如支持接受 WebSocket 连接等。
`ctx.server` 是 Koishi 的内置服务,提供了一个基于 [Koa Router](https://github.com/koajs/router) 的简单路由系统,用于管理 Koishi 应用收到的网络请求。除了 Koa Router 所支持的部分方法外,Router API 还提供了一些额外的功能,例如支持接受 WebSocket 连接等。

::: warning
请避免使用未在本页列出的方法:
Expand All @@ -19,15 +19,15 @@ Koishi 默认情况下并不会监听任何端口,如要启用网络服务请

## 实例方法

### ctx.router[method](path, middleware)
### ctx.server[method](path, middleware)

- **method:** 可以是 `get`, `post`, `put`, `delete`, `patch``all` (仅能是小写)
- **path:** `string | RegExp | (string | RegExp)[]` 路径
- **middleware:** `Function` Koa 中间件

处理特定路径上的网络请求。具体请参见 [这里](https://github.com/koajs/router/blob/master/API.md)

### ctx.router\.ws(path, handler)
### ctx.server\.ws(path, handler)

- **path:** `string | RegExp | (string | RegExp)[]` 路径
- **handler:** `WebSocketHandler` 处理函数,接受下列参数
Expand Down
10 changes: 5 additions & 5 deletions zh-CN/guide/adapter/adapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ if (session) this.dispatch(session)

```ts
export class HttpServer<C extends Context> extends Adapter<C, LineBot<C>> {
static inject = ['router']
static inject = ['server']

constructor(public ctx: C) {
super()

ctx.router.post('/line', async (ctx) => {
ctx.server.post('/line', async (ctx) => {
const { destination, events } = ctx.request.body
const bot = this.bots.find(bot => bot.selfId === destination)
if (!bot) return ctx.status = 403
Expand All @@ -114,7 +114,7 @@ export class HttpServer<C extends Context> extends Adapter<C, LineBot<C>> {
async start(bot: LineBot) {
await this.getLogin()
await bot.internal.setWebhookEndpoint({
endpoint: this.ctx.router.config.selfUrl + '/line',
endpoint: this.ctx.server.config.selfUrl + '/line',
})
}
}
Expand All @@ -125,11 +125,11 @@ export class HttpServer<C extends Context> extends Adapter<C, LineBot<C>> {
```ts
await this.getLogin()
await bot.internal.setWebhookEndpoint({
endpoint: this.ctx.router.config.selfUrl + '/line',
endpoint: this.ctx.server.config.selfUrl + '/line',
})
```

对于 HTTP 服务器来说,我们不仅需要维护机器人的状态,还需要创建一个 HTTP 服务器,用于接收来自聊天平台的事件。因此,我们在构造函数中使用 `ctx.router` 监听了 Webhook 回调地址。对于每一个接收到的请求,我们首先验证其是否对应于已经配置的机器人:
对于 HTTP 服务器来说,我们不仅需要维护机器人的状态,还需要创建一个 HTTP 服务器,用于接收来自聊天平台的事件。因此,我们在构造函数中使用 `ctx.server` 监听了 Webhook 回调地址。对于每一个接收到的请求,我们首先验证其是否对应于已经配置的机器人:

```ts
const sign = ctx.headers['x-line-signature']?.toString()
Expand Down
4 changes: 2 additions & 2 deletions zh-CN/guide/adapter/message.md
Original file line number Diff line number Diff line change
Expand Up @@ -272,10 +272,10 @@ Telegram 是另一种特殊情况。尽管其提供的资源链接是可用的

```ts
class LarkAdapter {
static inject = ['router']
static inject = ['server']

constructor(ctx: Context) {
ctx.router.get('/lark/assets/:message_id/:key', async (ctx) => {
ctx.server.get('/lark/assets/:message_id/:key', async (ctx) => {
const key = ctx.params.key
const messageId = ctx.params.message_id
const selfId = ctx.request.query.self_id
Expand Down
2 changes: 1 addition & 1 deletion zh-CN/manual/recipe/execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Koishi 默认不转义单引号内的文本。如果你不希望某个参数被

<chat-panel>
<chat-message nickname="Alice">ecko hello</chat-message>
<chat-message nickname="Koishi">您要找的是不是“echo”?发送句号以使用推测的指令。</chat-message>
<chat-message nickname="Koishi">您要找的是不是“echo”?回复句号以使用推测的指令。</chat-message>
<chat-message nickname="Alice">.</chat-message>
<chat-message nickname="Koishi">hello</chat-message>
</chat-panel>
Expand Down

0 comments on commit d4174d3

Please sign in to comment.