我目前正在使用一个 C# 应用程序,它需要通过 websocket 连接到一个用 C++ 编码的软件。C# 应用程序是客户端,C++ 软件是服务器。如果未连接,我希望 C# 应用程序每 5 秒尝试重新连接到 websocket。我目前正在使用 websocket-sharp。
到目前为止,这是我的代码:
using System;
using System.Threading;
using WebSocketSharp;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
using (var ws = new WebSocket("ws://192.168.1.25:50000"))
{
ws.OnMessage += (sender, e) =>
{
Console.WriteLine("Message received : " + e.Data);
if (e.Data == "alreadyConnected")
{
ws.Send("forceConnect");
}
if (e.Data == "connexionEstablished")
{
ws.Send("Hello server");
}
};
ws.OnOpen += (sender, e) =>
{
Console.WriteLine("Connexion has been established");
ws.Send("some message");
};
ws.OnClose += (sender, e) =>
{
Console.WriteLine("Connexion has been lost");
if (!e.WasClean)
{
if (!ws.IsAlive)
{
Thread.Sleep(5000);
ws.Connect();
}
}
};
ws.OnError += (sender, e) =>
{
Console.WriteLine("Connexion has led to an error");
};
ws.Connect();
Console.ReadKey(true);
}
}
}
}
但是在 10 次不成功的尝试后,我收到一条错误消息“一系列重新连接失败”。这是由于 websocket-sharp 中固定的最大重试次数。收到此消息后,我没有找到继续尝试重新连接的方法(也没有单独尝试,也没有在互联网上搜索)。有人知道我可以做到这一点吗?
如果有人可以提供帮助,我将非常感激 :) 祝你有美好的一天!