Esempio n. 1
0
 private static void PongHandler(ConnectcastChannel channel, dynamic data)
 {
     if (channel.disconnectTimer != null)
     {
         channel.disconnectTimer.Change(PING_INTERVAL + 1000, Timeout.Infinite);
     }
 }
Esempio n. 2
0
        private static void DataHandler(ConnectcastChannel channel, dynamic data)
        {
            if (data == null)
            {
                return;
            }

            string type = (string)data[0];

            if (String.IsNullOrWhiteSpace(type))
            {
                return;
            }

            if (type.StartsWith("update-chat", StringComparison.InvariantCultureIgnoreCase))
            {
                dynamic senderInfo = (dynamic)data[2];
                string  room       = (string)senderInfo["room"];

                if (String.IsNullOrWhiteSpace(room) ||
                    !room.Equals(channel.ChannelName.Replace("#", ""), StringComparison.InvariantCultureIgnoreCase))
                {
                    return;
                }

                string name = (string)senderInfo["name"];

                string messageHtml = data[1];
                string text        = Re.GetSubString(messageHtml, "<p>(.*)</p>");

                if (String.IsNullOrWhiteSpace(name) ||
                    String.IsNullOrWhiteSpace(text))
                {
                    return;
                }

                channel.ChannelStats.MessagesCount++;
                channel.Chat.UpdateStats();

                if (channel.ReadMessage != null)
                {
                    channel.ReadMessage(new ChatMessage()
                    {
                        Channel         = channel.ChannelName,
                        ChatIconURL     = channel.Chat.IconURL,
                        ChatName        = channel.Chat.ChatName,
                        FromUserName    = name,
                        HighlyImportant = false,
                        IsSentByMe      = false,
                        Text            = text,
                    });
                }
            }
        }
Esempio n. 3
0
        private static void ConnectHandler(ConnectcastChannel channel, dynamic data)
        {
            channel.Chat.Status.IsConnected = true;
            channel.webSocket.Send("5");
            channel.webSocket.Send(
                String.Format(@"42[""join"",{{""room"":""{0}"",""token"":""{1}""}}]",
                              channel.ChannelName.Replace("#", ""),
                              channel.channelToken
                              ));

            if (channel.JoinCallback != null)
            {
                channel.JoinCallback(channel);
            }
        }