// Send PING to irc server every 15 seconds
 public void Run()
 {
     while (true)
     {
         _outputInterface.WriteLine(string.Format("PING :{0}", _server));
         Thread.Sleep(15000);
     }
 }
Exemple #2
0
        public void Initialize()
        {
            Console.WriteLine("Initialize Connection");
            string inputLine = null;

#if !DEBUG
            try
            {
#endif
            using (var irc = new TcpClient(_server, _port))
            {
                var stream = irc.GetStream();
                var reader = new StreamReader(stream);
                _outputInterface.SetInterface(new StreamWriter(stream));
                // Start PingSender thread
                var ping = new PingSender(_outputInterface, _server);
                ping.Start();
                _outputInterface.WriteLine(User);
                _outputInterface.WriteLine("NICK " + _username);
                _outputInterface.WriteLine("JOIN " + _channel);
                while (true)
                {
                    while ((inputLine = reader.ReadLine()) != null)
                    {
                        Debug.WriteLine(inputLine);
                        var garbage = inputLine.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                        if (garbage.Length > 1)
                        {
                            var ircMessage = IrcMessage.ParseInput(inputLine);

                            foreach (var responder in _responders)
                            {
                                if (responder.HasResponse(ircMessage))
                                {
                                    var responses = responder.GetResponse(ircMessage);
                                    if (responses != null)
                                    {
                                        foreach (var response in responses)
                                        {
                                            Console.WriteLine("Input: {0}", inputLine);
                                            Console.WriteLine("Response: {0}", response);
                                            _outputInterface.WriteLine(response);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    // Close all streams
                    _outputInterface.Close();
                    reader.Close();
                    irc.Close();
                }
            }
#if !DEBUG
        }

        catch (Exception ex)
        {
            Console.WriteLine(ex);
            Console.WriteLine("Source: {0}", inputLine);
            Initialize();
        }
#endif
        }