// 生成心跳协议数据包 public static byte[] GetKeepAlivePackage() { DouyuEncoder encoder = new DouyuEncoder(); encoder.AddItem("type", "mrkl"); return(BuildPackage(encoder.GetResult())); }
// 生成登录请求数据包 public static byte[] GetLoginRequestPackage(int roomID) { DouyuEncoder encoder = new DouyuEncoder(); encoder.AddItem("type", "loginreq"); encoder.AddItem("roomid", roomID); return(BuildPackage(encoder.GetResult())); }
// 生成加入弹幕分组池数据包 public static byte[] GetJoinGroupRequestPackage(int roomID, int groupID) { DouyuEncoder encoder = new DouyuEncoder(); encoder.AddItem("type", "joingroup"); encoder.AddItem("rid", roomID); encoder.AddItem("gid", groupID); return(BuildPackage(encoder.GetResult())); }
public Dictionary <string, object> ParseMessage(string message) { Dictionary <string, object> dic = new Dictionary <string, object>(); message = message.LastIndexOf('/') != -1 ? message.Substring(0, message.LastIndexOf('/')) : message; string[] pairs = message.Split('/'); foreach (string s in pairs) { int i = s.IndexOf("@="); if (i != -1) { string key = s.Substring(0, i); object value = s.Substring(i + 2); if (value.ToString().Contains("@A")) { value = DouyuEncoder.EscapeToPlain(value.ToString()); value = ParseMessage(value.ToString()); } dic[key] = value; } } return(dic); }