From 67e6034dcfcae4b4bf18217c1a4d31921a74dde5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=99=BD=E7=8C=BF?= <1083092844@qq.com> Date: Sun, 9 Apr 2023 22:25:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=8C=85=E5=BC=82=E5=B8=B8=E6=8D=95?= =?UTF-8?q?=E6=8D=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BarrageGrab/Proxy/TitaniumProxy.cs | 47 +++++++++++++++++------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/BarrageGrab/Proxy/TitaniumProxy.cs b/BarrageGrab/Proxy/TitaniumProxy.cs index 8adde15..0190f62 100644 --- a/BarrageGrab/Proxy/TitaniumProxy.cs +++ b/BarrageGrab/Proxy/TitaniumProxy.cs @@ -105,36 +105,43 @@ namespace BarrageGrab.Proxy List messageData = new List(); - foreach (var frame in args.WebSocketDecoderReceive.Decode(e.Buffer, e.Offset, e.Count)) + try { - if (frame.OpCode == WebsocketOpCode.Continuation) + foreach (var frame in args.WebSocketDecoderReceive.Decode(e.Buffer, e.Offset, e.Count)) { - messageData.AddRange(frame.Data.ToArray()); - continue; - } - else - { - byte[] payload; - if (messageData.Count > 0) + if (frame.OpCode == WebsocketOpCode.Continuation) { messageData.AddRange(frame.Data.ToArray()); - payload = messageData.ToArray(); - messageData.Clear(); + continue; } else { - payload = frame.Data.ToArray(); - } + byte[] payload; + if (messageData.Count > 0) + { + messageData.AddRange(frame.Data.ToArray()); + payload = messageData.ToArray(); + messageData.Clear(); + } + else + { + payload = frame.Data.ToArray(); + } - base.FireWsEvent(new WsMessageEventArgs() - { - ProcessID = processid, - HostName = hostname, - Payload = payload, - ProcessName = base.GetProcessName(processid) - }); + base.FireWsEvent(new WsMessageEventArgs() + { + ProcessID = processid, + HostName = hostname, + Payload = payload, + ProcessName = base.GetProcessName(processid) + }); + } } } + catch (Exception ex) + { + Console.WriteLine("解析某个WebSocket包出错:" + ex.Message); + } if (messageData.Count > 0) {