首页 > 解决方案 > 如何使用 socket.io 将实时数据获取到使用 C# 的 Win Form

问题描述

我正在使用以下 C# 代码在我的桌面应用程序中显示实时数据

            string strQuery = "AbcD";
            string socketURI = "https://mysocketio.com/";
            Dictionary<string, string> dictQS = new Dictionary<string, string>();
            dictQS.Add("token", strQuery);
            dictQS.Add("transport", "websocket");

            try
            {
                IO.Options options = new IO.Options() { AutoConnect = true, ForceNew = true, Path = "/socket/", Query = dictQS };

                var cSocket = IO.Socket(socketURI, options); //An item with the same key has already been added 
                cSocket.Connect();

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

                cSocket.On("change", (data) => {

                    MessageBox.Show("change");

                });

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

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

但我得到了一个错误An item with the same key has already been added。请提供解决方案。谢谢。

标签: c#socket.io

解决方案


也许您应该检查该键是否存在于字典中?

     if (!dictQS.ContainsKey(yourKey))
         dictQS.Add(yourKey, yourValue);
     else
         dictQS[yourKey] = yourValue;

推荐阅读