diff --git a/BarrageGrab/Logger.cs b/BarrageGrab/Logger.cs
index 6147f33..aae19aa 100644
--- a/BarrageGrab/Logger.cs
+++ b/BarrageGrab/Logger.cs
@@ -56,6 +56,11 @@ namespace BarrageGrab
logger.Fatal(ex, message);
}
+ ///
+ /// 写入弹幕日志
+ ///
+ /// 弹幕类型
+ /// 弹幕内容
public static void LogBarrage(PackMsgType type, Msg msg)
{
if (!Appsetting.Current.BarrageLog) return;
@@ -86,10 +91,9 @@ namespace BarrageGrab
{
LogWarn("弹幕日志写入失败," + ex.Message);
return;
- }
+ }
}
-
private static string LogText(Msg msg, PackMsgType barType)
{
var rinfo = AppRuntime.RoomCaches.GetCachedWebRoomInfo(msg.RoomId.ToString());
@@ -112,5 +116,46 @@ namespace BarrageGrab
text += append;
return text;
}
+
+ ///
+ /// 写入弹幕抓包日志
+ ///
+ /// 分组名
+ /// 包名
+ /// 数据内容
+ /// 分组下最大存储包数量
+ public static void LogBarragePack(string group, string name, byte[] buff, int maxCount = 5)
+ {
+ if (buff.Length <= 10) return;
+ if (group.IsNullOrWhiteSpace()) return;
+ if (name.IsNullOrWhiteSpace()) return;
+ var filename = name + ".bin";
+ var dir = Path.Combine(AppContext.BaseDirectory, "logs", "弹幕包解析", group);
+ var fullPath = Path.Combine(dir, filename);
+
+ try
+ {
+ //获取该文件在该目录下的数量
+ var fiels = Directory.GetFiles(dir, filename);
+ var count = fiels.Length;
+ if (count > 0)
+ {
+ filename = $"{name}({count}).bin";
+ fullPath = Path.Combine(dir, filename);
+ }
+ File.WriteAllBytes(fullPath, buff);
+
+ if (++count > maxCount)
+ {
+ //删除最早的文件
+ var first = fiels.Select(s=>new FileInfo(s)).OrderBy(o=>o.CreationTime).FirstOrDefault();
+ File.Delete(first.FullName);
+ }
+ }
+ catch (Exception ex)
+ {
+ Logger.LogWarn("写入包日志时失败,错误信息:" + ex.Message);
+ }
+ }
}
}
diff --git a/BarrageGrab/Modles/ProtoEntity/Wss.cs b/BarrageGrab/Modles/ProtoEntity/Wss.cs
index e1cdcb6..016938d 100644
--- a/BarrageGrab/Modles/ProtoEntity/Wss.cs
+++ b/BarrageGrab/Modles/ProtoEntity/Wss.cs
@@ -46,6 +46,5 @@ namespace BarrageGrab.Modles.ProtoEntity
#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
#endregion
-
}
diff --git a/BarrageGrab/WssBarrageGrab.cs b/BarrageGrab/WssBarrageGrab.cs
index 89631c1..f51833d 100644
--- a/BarrageGrab/WssBarrageGrab.cs
+++ b/BarrageGrab/WssBarrageGrab.cs
@@ -142,6 +142,7 @@ namespace BarrageGrab
private void Proxy_OnFetchResponse(object sender, HttpResponseEventArgs e)
{
var payload = e.HttpClient.Response.Body;
+
var response = Serializer.Deserialize(new ReadOnlyMemory(payload));
if (!succPackHostNames.Contains(e.HostName))
diff --git a/BarrageGrab/WssBarrageService.csproj b/BarrageGrab/WssBarrageService.csproj
index 7ca0c5b..1394cd0 100644
--- a/BarrageGrab/WssBarrageService.csproj
+++ b/BarrageGrab/WssBarrageService.csproj
@@ -139,6 +139,15 @@
+
+
+ FormView.cs
+
+
+
+
+ RoomDetail.cs
+
Form
@@ -198,6 +207,12 @@
+
+ FormView.cs
+
+
+ RoomDetail.cs
+
FormView.cs