Websocket-sharp重连机制解决方案
在websocket-sharp中,我发现,如果在OnClose调用socket.Connect来实现socket的重连机制的话,会出现堆栈溢出的异常,所以,在这里我采用了使用timer来触发重连机制
using System;
using System.Threading;
using WebSocketSharp;
namespace ClientTest
{
class Program
{
static WebSocket ws;
//定义一个timer
static System.Threading.Timer ti = new Timer(new TimerCallback(go_reconn));
//重连次数
static int retry_count = 5;
//timer触发的函数
static void go_reconn(object oo)
{
if (retry_count > 0)
{
Console.WriteLine("");
retry_count--;
ws.Connect();
}
else
{
//重连五次后,如果还没有连上,则重新创建一个
ws = new WebSocket("ws://192.168.0.22:80/wscontact");
ws.OnClose += Ws_OnClose;
ws.OnM