From 78d76f55e2ead9742e2d8b61a3899a8b46884957 Mon Sep 17 00:00:00 2001 From: wdvxdr Date: Mon, 16 Aug 2021 16:05:33 +0800 Subject: [PATCH] fix(scf): always flush the writer. --- server/scf.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/server/scf.go b/server/scf.go index 2c1f812..5169967 100644 --- a/server/scf.go +++ b/server/scf.go @@ -116,23 +116,20 @@ func RunLambdaClient(bot *coolq.CQBot, conf *config.LambdaServer) { for { req := cli.next() - if req == nil { - writer := lambdaResponseWriter{statusCode: 200} - _, _ = writer.Write(nil) - continue - } + writer := lambdaResponseWriter{statusCode: 200, header: make(http.Header)} func() { defer func() { if e := recover(); e != nil { log.Warnf("Lambda 出现不可恢复错误: %v\n%s", e, debug.Stack()) } }() - writer := lambdaResponseWriter{header: make(http.Header)} - server.ServeHTTP(&writer, req) - if err := writer.flush(); err != nil { - log.Warnf("Lambda 发送响应失败: %v", err) + if req != nil { + server.ServeHTTP(&writer, req) } }() + if err := writer.flush(); err != nil { + log.Warnf("Lambda 发送响应失败: %v", err) + } } }