一段时间后,TcpClient从Twitch IRC断开连接

时间:2015-05-28 01:41:00

标签: c# sockets irc twitch

我的问题是,在我连接到IRC并且我从IRC接收原始文本并记录它之后,它只是决定在不活动后或在启动后2-3秒(未经证实)与服务器断开连接。

任何帮助将不胜感激。这是我的代码(有问题在这里发布): http://pastebin.com/Ls5rv0RP

我需要它来停止断开,但我真的找不到办法。我知道流行的mIRC客户端在经过x个时间后会从Twitch断开连接但重新连接并且只要它知道要及时重新连接(2-5秒)就可以了。

这部分内容是对PING / PONG的回复:

if (buf.StartsWith("PING ")) output.Write(buf.Replace("PING", "PONG") + "\r\n"); output.Flush();

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

下面这段代码通过运行一个ping到IRC服务器的单独线程来帮助我的Twitch bot断开连接。

PingSender课程:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace TwitchBot
{
    /*
    * Class that sends PING to irc server every 5 minutes
    */
    class PingSender
    {
        static string PING = "PING ";
        private Thread pingSender;

        // Empty constructor makes instance of Thread
        public PingSender() 
        {
            pingSender = new Thread (new ThreadStart (this.Run) ); 
        } 
        // Starts the thread
        public void Start() 
        { 
            pingSender.Start(); 
        } 
        // Send PING to irc server every 5 minutes
        public void Run()
        {
            while (true)
            {
                Program.irc.sendIrcMessage(PING + "irc.twitch.tv");
                Thread.Sleep(300000); // 5 minutes
            }
        }
    }
}

用法:

/* Ping to twitch server to prevent auto-disconnect */
PingSender ping = new PingSender();
ping.Start();