我想知道是否可以将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
答案 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客户端更复杂