带Socket.IO后端的XSocket客户端?

时间:2015-05-14 16:44:19

标签: c# mono socket.io xsockets.net

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

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

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

    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 ();
    }

奇怪的是它似乎连接,但我没有得到任何数据....我认为这与控制器和我刚刚做的事实有关,因为我&m; m在尝试使用Socket.IO后端时,不确定您为控制器命名的内容......

- 输出

  

断开连接

     

连接

奇怪的是,首先断开连接......不确定那是什么

旁注:

我想能够连接到C#中的Socket.IO服务器,但它看起来真的很随意..我已经尝试了几个C#Socket.Io端口,SocketIoClientDotNet实际上工作得很好,直到你尝试在Mono中运行它,然后它有error

1 个答案:

答案 0 :(得分:0)

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

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

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

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