0

我想知道是否可以使用XSocket作为客户端和Socket.IO作为服务器端。

我很确定它不会起作用,但后来我读了这篇文章,这实际上与我想做的相反。这似乎有效。我猜的主要区别是我不是在编写服务器,我只是在尝试使用已经存在的服务器。

这是我到目前为止所拥有的:

    public static void Main (string[] args)
    {
        try{
            const string ClientID = "--MyClientID--";
            const string AccessToken = "--MyAccessToken--";

            XSocketClient client = new XSocketClient ("https://streamtip.com", "https://streamtip.com", "StreamTipIO");

            client.QueryString.Add("client_id", Uri.EscapeDataString(ClientID));
            client.QueryString.Add("access_token",Uri.EscapeDataString(AccessToken));

            client.OnError += 
                (object sender, XSockets.Client40.Common.Event.Arguments.OnErrorArgs e) => Console.WriteLine (e);
            client.OnConnected += 
                (object sender, EventArgs e) => Console.WriteLine ("Connected");
            client.OnDisconnected += 
                (object sender, EventArgs e) =>  Console.WriteLine ("Disconnected");
            client.OnPing += 
                (object sender, XSockets.Client40.Model.Message e) => Console.WriteLine (e);
            client.OnPong += 
                (object sender, XSockets.Client40.Model.Message e) => Console.WriteLine (e);


            //client.Controller("test").On("authenticated", () => Console.WriteLine("test"));
            client.Controller("StreamTipIO").On<string>("authenticated", Console.WriteLine);

            client.Open();
        }
        catch(Exception e)
        {
            Console.WriteLine (e);
        }

        Console.ReadLine ();
    }

奇怪的是它似乎连接了,但我没有得到任何数据....我认为这与控制器有关,而且我刚刚编造的事实,因为我不确定你会命名什么尝试使用 Socket.IO 后端时的控制器...

- 输出

断开连接

连接的

奇怪的是,首先断开连接的火灾......不知道那是关于什么的

附带说明:

我希望能够在 C# 中连接到 Socket.IO 服务器,但它似乎真的很随意。我已经尝试了一些 C# Socket.Io 端口,SocketIoClientDotNet实际上工作得很好,直到你尝试在 Mono 中运行它然后它有这个错误

4

1 回答 1

0

您可以使用 TCP 将任何东西连接到 XSockets.NET 服务器,因为 XSockets 允许跨协议通信。在明文中,这意味着 XSockets 不关心每个客户端的“传输”或“语言”。服务器也不关心消息格式,因为每个协议都负责转换输入/输出的消息

您不能将 XSockets 客户端与 socket.io 服务器一起使用。他们可能会连接,但消息的格式不会直接适合 socket.io。

由于您的任务似乎是将 C#/Mono 与 socket.io 一起使用,只需使用 XSockets C# 客户端(或 C# 中的任何其他 websocket 客户端)并为 socket.io 重建它。XSockets 客户端在 Mono 上运行,在 github 上开源

我的猜测是其他客户端将更容易移植,因为 XSockets 客户端非常特定于 XSockets,并且可能比 C# 中的简单 websocket 客户端更复杂

于 2015-05-15T06:52:43.200 回答