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

C# 带Socket.IO后端的XSocket客户端?,c#,mono,socket.io,xsockets.net,C#,Mono,Socket.io,Xsockets.net,我想知道它是否可以用作客户端和服务器端 我很确定它不会起作用,但后来我读了,这实际上与我想做的相反。这似乎奏效了。 我想主要的区别在于我没有编写服务器,我只是尝试使用一个已经存在的服务器 以下是我目前掌握的情况: public static void Main (string[] args) { try{ const string ClientID = "--MyClientID--"; const string A

我想知道它是否可以用作客户端和服务器端

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

以下是我目前掌握的情况:

    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 ();
    }
publicstaticvoidmain(字符串[]args)
{
试一试{
常量字符串ClientID=“--MyClientID-->”;
常量字符串AccessToken=“--MyAccessToken--”;
XSocketClient=新的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+=
(对象发送方,XSockets.Client40.Common.Event.Arguments.onerrorrargs e)=>Console.WriteLine(e);
client.OnConnected+=
(对象发送方,EventArgs e)=>Console.WriteLine(“已连接”);
client.OnDisconnected+=
(对象发送方,EventArgs e)=>Console.WriteLine(“断开”);
client.OnPing+=
(对象发送方,XSockets.Client40.Model.Message e)=>Console.WriteLine(e);
client.OnPong+=
(对象发送方,XSockets.Client40.Model.Message e)=>Console.WriteLine(e);
//client.Controller(“test”).On(“authenticated”),()=>Console.WriteLine(“test”);
客户端控制器(“StreamTipIO”)。打开(“已验证”,控制台。写入线);
client.Open();
}
捕获(例外e)
{
Console.WriteLine(e);
}
Console.ReadLine();
}
奇怪的是,它似乎连接起来了,但我没有得到任何数据。。。。我想这与控制器有关,而事实上我只是虚构出来的,因为我不确定在尝试使用Socket.IO后端时控制器的名称

--输出

断开

连接的

奇怪的是,首先。。。。不知道是怎么回事

旁注:


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

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

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

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

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

谢谢,我将研究:)我可能会走另一条路,这真的更令人好奇。