@@ -123,13 +123,14 @@ func OnWsRecvMessage(cli *client.QQClient) func(ws *safe_ws.SafeWebSocket, messa
123123 return
124124 }
125125 var apiReq onebot.Frame
126- if messageType == websocket .BinaryMessage {
126+ switch messageType {
127+ case websocket .BinaryMessage :
127128 err := proto .Unmarshal (data , & apiReq )
128129 if err != nil {
129130 log .Errorf ("收到API binary,解析错误 %v" , err )
130131 return
131132 }
132- } else if messageType == websocket .TextMessage {
133+ case websocket .TextMessage :
133134 err := jsonUnmarshaler .Unmarshal (bytes .NewReader (data ), & apiReq )
134135 if err != nil {
135136 log .Errorf ("收到API text,解析错误 %v" , err )
@@ -140,12 +141,25 @@ func OnWsRecvMessage(cli *client.QQClient) func(ws *safe_ws.SafeWebSocket, messa
140141 log .Debugf ("收到 apiReq 信息, %+v" , util .MustMarshal (apiReq ))
141142
142143 apiResp := handleApiFrame (cli , & apiReq )
143- respBytes , err := apiResp .Marshal ()
144- if err != nil {
145- log .Errorf ("failed to marshal api resp, %+v" , err )
144+ var (
145+ respBytes []byte
146+ err error
147+ )
148+ switch messageType {
149+ case websocket .BinaryMessage :
150+ respBytes , err = apiResp .Marshal ()
151+ if err != nil {
152+ log .Errorf ("failed to marshal api resp, %+v" , err )
153+ }
154+ case websocket .TextMessage :
155+ respStr , err := jsonMarshaler .MarshalToString (apiResp )
156+ if err != nil {
157+ log .Errorf ("failed to marshal api resp, %+v" , err )
158+ }
159+ respBytes = []byte (respStr )
146160 }
147161 log .Debugf ("发送 apiResp 信息, %+v" , util .MustMarshal (apiResp ))
148- _ = ws .Send (websocket . BinaryMessage , respBytes )
162+ _ = ws .Send (messageType , respBytes )
149163 }
150164}
151165
0 commit comments