【问题标题】:SocketIoClientDotNet return error "An item with the same key has already been added"SocketIoClientDotNet 返回错误“已添加具有相同密钥的项目”
【发布时间】:2017-04-21 17:53:54
【问题描述】:

我正在尝试使用 c# 控制台在服务器端与我的 socket.io 建立连接,并且我正在使用 Quobject.SocketIoClientDotNet。我不知道为什么每当程序运行时

var cSocket = IO.Socket(websocket);

返回错误

“已添加具有相同键的项目”

Socket2("ws://eng.testsoc.com/socket.io/?md=" + myid + "&en=&id=1&rd=&EIO=3&transport=websocket&sid=" + sid);

public static void Socket2(string websocket)
{
     try
        {
            var options = new IO.Options() { IgnoreServerCertificateValidation = true, AutoConnect = true, ForceNew = true };
            var cSocket = IO.Socket(websocket); //Hit Error An item with the same key has already been added 
            cSocket.Connect();

            cSocket.On(Socket.EVENT_CONNECT, () =>
            {
                Console.WriteLine("success");
            });

            cSocket.On(Socket.EVENT_DISCONNECT, () =>
            {

                Console.WriteLine("Disconnected");
            });
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

 }

我的问题是为什么会返回这个错误,是我调用套接字的方式不正确

【问题讨论】:

  • 我面临着完全相同的问题。你找到解决办法了吗?

标签: c# sockets socket.io


【解决方案1】:

正如我所注意到的,这个库省略了标准的 WebSocket URI 而不是

Socket soc = new Socket("ws://172.16.0.9:3000/socket.io/?EIO=4&transport=websocket");

我刚刚通过并且成功了:

Socket soc = new Socket("http://172.16.0.9:3000");

【讨论】:

    猜你喜欢
    • 2017-01-02
    • 2017-08-02
    • 1970-01-01
    • 2011-01-27
    • 2018-10-03
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多