예제 #1
0
        private void Ws_OnMessage(object sender, MessageEventArgs e)
        {
            string requestMsg = Encoding.UTF8.GetString(e.RawData);
            var    obj        = JsonConvert.DeserializeObject <ToonationObject>(requestMsg);

            if (obj.content != null)
            {
                if (obj.code == 101)
                {
                    eCurrentMessageKind = EMessageKind.donate;
                    if (obj.code_ex == 700)
                    {
                        eCurrentMessageKind = EMessageKind.roulette;
                    }
                }
                else if (obj.code == 102)
                {
                    eCurrentMessageKind = EMessageKind.sub;
                }
                else if (obj.code == 103)
                {
                    eCurrentMessageKind = EMessageKind.follow;
                }
                else if (obj.code == 104)
                {
                    eCurrentMessageKind = EMessageKind.hosting;
                }
                else if (obj.code == 107)
                {
                    eCurrentMessageKind = EMessageKind.cheer;
                }
                else if (obj.code == 114)
                {
                    eCurrentMessageKind = EMessageKind.sub;
                }
                else if (obj.code == 115)
                {
                    eCurrentMessageKind = EMessageKind.sub;
                }
                OnToonationObject?.Invoke(obj);
            }
        }
예제 #2
0
        public WebSocket(string url_)
        {
            url = url_;
            GetPayload();
            if (title == "Toonation")
            {
                webSocket            = new WebSocketSharp.WebSocket("wss://toon.at:8071/" + payload);
                webSocket.OnMessage += Ws_OnMessage;
                webSocket.OnClose   += Ws_OnClose;
                webSocket.Connect();
            }
            else if (title == "Twip AlertBox")
            {
                string ioUrl = $"https://io.mytwip.net?alertbox_key={key}&version={version}&token={encodeURIComponent(token)}";

                var client = new SocketIoClient();
                client.Connected              += (sender, args) => Debug.WriteLine($"Connected: {args.Namespace}");
                client.Disconnected           += (sender, args) => Debug.WriteLine($"Disconnected. Reason: {args.Reason}, Status: {args.Status:G}");
                client.EventReceived          += (sender, args) => Debug.WriteLine($"EventReceived: Namespace: {args.Namespace}, Value: {args.Value}, IsHandled: {args.IsHandled}");
                client.HandledEventReceived   += (sender, args) => Debug.WriteLine($"HandledEventReceived: Namespace: {args.Namespace}, Value: {args.Value}");
                client.UnhandledEventReceived += (sender, args) => Debug.WriteLine($"UnhandledEventReceived: Namespace: {args.Namespace}, Value: {args.Value}");
                client.ErrorReceived          += (sender, args) => Debug.WriteLine($"ErrorReceived: Namespace: {args.Namespace}, Value: {args.Value}");
                client.ExceptionOccurred      += (sender, args) => Debug.WriteLine($"ExceptionOccurred: {args.Value}");
                client.On("new donate", message =>
                {
                    eCurrentMessageKind = EMessageKind.donate;
                    Console.WriteLine(message);
                    var obj = JsonConvert.DeserializeObject <TwipObject>(message);
                    if (obj.effect != null)
                    {
                        if (obj.slotmachine_data != null)
                        {
                            eCurrentMessageKind = EMessageKind.roulette;
                        }
                        OnTwipObject?.Invoke(obj);
                    }
                });
                client.On("new cheer", message =>
                {
                    eCurrentMessageKind = EMessageKind.cheer;
                    Console.WriteLine(message);
                    var obj = JsonConvert.DeserializeObject <TwipObject>(message);
                    if (obj.effect != null)
                    {
                        OnTwipObject?.Invoke(obj);
                    }
                });
                client.On("new follow", message =>
                {
                    eCurrentMessageKind = EMessageKind.follow;
                    Console.WriteLine(message);
                    var obj = JsonConvert.DeserializeObject <TwipObject>(message);
                    if (obj.effect != null)
                    {
                        OnTwipObject?.Invoke(obj);
                    }
                });
                client.On("new sub", message =>
                {
                    eCurrentMessageKind = EMessageKind.sub;
                    Console.WriteLine(message);
                    var obj = JsonConvert.DeserializeObject <TwipObject>(message);
                    if (obj.effect != null)
                    {
                        OnTwipObject?.Invoke(obj);
                    }
                });
                client.On("new hosting", message =>
                {
                    eCurrentMessageKind = EMessageKind.hosting;

                    Console.WriteLine(message);
                    var obj = JsonConvert.DeserializeObject <TwipObject>(message);
                    if (obj.effect != null)
                    {
                        OnTwipObject?.Invoke(obj);
                    }
                });
                client.On("new redemption", message =>
                {
                    eCurrentMessageKind = EMessageKind.redemption;
                    Console.WriteLine(message);
                    var obj = JsonConvert.DeserializeObject <TwipObject>(message);
                    if (obj.effect != null)
                    {
                        OnTwipObject?.Invoke(obj);
                    }
                });
                client.ConnectAsync(new Uri(ioUrl)).Wait();
            }
            jsonSettings = new JsonSerializerSettings
            {
                NullValueHandling     = NullValueHandling.Ignore,
                MissingMemberHandling = MissingMemberHandling.Ignore
            };
        }