TcpClient 在一段时间后从 Twitch IRC 断开连接
TcpClient disconnects after awhile from Twitch IRC
我的问题是,在我连接到 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();
感谢任何帮助。
下面的代码有助于防止我的 Twitch 机器人通过 运行 连接到 IRC 服务器的单独线程断开连接。
PingSender Class:
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();
我的问题是,在我连接到 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();
感谢任何帮助。
下面的代码有助于防止我的 Twitch 机器人通过 运行 连接到 IRC 服务器的单独线程断开连接。
PingSender Class:
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();