(reason?: RelayReason)
| 217 | } |
| 218 | } catch {} |
| 219 | return 0; |
| 220 | } |
| 221 | |
| 222 | type RelayReason = "timeout" | "fetch_failed" | "send_failed" | "no_client"; |
| 223 | |
| 224 | interface RelayOutcome { |
| 225 | lastId: number; |
| 226 | forwarded: boolean; |
| 227 | reason?: RelayReason; |
| 228 | error?: string; |
| 229 | } |
| 230 | |
| 231 | const describeReason = (reason?: RelayReason): string => { |
| 232 | switch (reason) { |
| 233 | case "timeout": |
| 234 | return "等待超时"; |
| 235 | case "fetch_failed": |