我的问题是,在我连接到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();
感谢任何帮助。
答案 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();