C# 利用 SocketIoClientDotNet作为socket通信的客户端,调用Java的Socket服务端,Java端用的组件是 netty-socketio,连接的有时可以连接成功,有时不成功报错误 xhr poll error,
以下是我的代码,不知道是什么原因
var options = new IO.Options();
options.QueryString = "roomId=spc";
options.IgnoreServerCertificateValidation = true;
options.AutoConnect = true;
options.ForceNew = true;
options.Timeout = 1000 * 5;
options.Secure = true;
options.ReconnectionDelay = 5000;
options.Reconnection = true;
// options.Transports = ImmutableList.Create<string>("websocket");
// options.Agent = true;
// options.Transports = new ImmutableList<string>("websocket");
var socket = IO.Socket("ws://***.**.**.***:4000/", options);//实例化对象
// 监听连接上
socket.On(Socket.EVENT_CONNECT, () => //监听链接
{
Console.WriteLine("链接成功");
socket.Emit("sendMessage", "Client Link Success"); //发送消息,前面是事件后面是时间 注意:发消息要保证链接是通的,如果链接不通就发数据,再链接上就发不出去
socket.On("sendMessage", (data) => //监听事件
{
Console.WriteLine(data);
// var b = (JObject)data; //将数据转一下
// Console.WriteLine(b['name']);
Console.WriteLine(data);
//socket.Disconnect(); //退出链接
});
});
socket.Connect(); //链接
// 监听连接关闭
socket.On(Socket.EVENT_DISCONNECT, () => {
//this.m_robot.OutLogMsg("退出联网");
//conn_net = false;
socket.Disconnect();
}); //socket.close(); 方法只能在这里disconnect 下 关闭其他如 reconnet等等不行
// Console.ReadKey();
// 监听错误
socket.On(Socket.EVENT_ERROR, (err) =>
{
Console.WriteLine("Event Error");
// socket.Disconnect();
});
// 监听连接错误
socket.On(Socket.EVENT_CONNECT_ERROR, (err) =>
{
Console.WriteLine("Connect Error");
socket.Connect();
});