Exemplo n.º 1
0
        // 生成心跳协议数据包
        public static byte[] GetKeepAlivePackage()
        {
            DouyuEncoder encoder = new DouyuEncoder();

            encoder.AddItem("type", "mrkl");
            return(BuildPackage(encoder.GetResult()));
        }
Exemplo n.º 2
0
        // 生成登录请求数据包
        public static byte[] GetLoginRequestPackage(int roomID)
        {
            DouyuEncoder encoder = new DouyuEncoder();

            encoder.AddItem("type", "loginreq");
            encoder.AddItem("roomid", roomID);
            return(BuildPackage(encoder.GetResult()));
        }
Exemplo n.º 3
0
        // 生成加入弹幕分组池数据包
        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()));
        }
Exemplo n.º 4
0
        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);
        }