private void WsOnDecode(string message) { Debug.WriteLine(message); JObject obj = DouyuSedes.Deserialize(message) as JObject; if (obj.ContainsKey("type")) { string type = obj["type"].Value <string>(); switch (type) { case "chatmsg": { ChatMessage chatMessage = new ChatMessage { Time = DateTimeOffset.FromUnixTimeMilliseconds(obj["cst"].Value <long>()).LocalDateTime, Username = obj["nn"].Value <string>(), Content = obj["txt"].Value <string>(), Color = obj.ContainsKey("col") ? (ChatMessageColor)obj["col"].Value <int>() : ChatMessageColor.White, Level = obj["level"].Value <int>() }; OnChatMessage.Invoke(chatMessage); break; } } if (callbacks.ContainsKey(type)) { callbacks[type](obj); } } }
private void Send(JObject obj) { ws.Send(codec.Encode(DouyuSedes.Serialize(obj))); }