具有 Socket.IO 后端的 XSocket 客户端?
XSocket client with Socket.IO backend?
我想知道是否可以使用 XSocket as a client and 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 ();
}
奇怪的是它似乎连接上了,但我没有得到任何数据....我认为这与控制器有关,事实上我只是弥补了,因为我不确定当您尝试使用 Socket.IO 后端时,您会为控制器命名...
--输出
Disconnected
Connected
奇怪的是断开连接首先触发....不知道那是什么
旁注:
我希望能够在 C# 中连接到 Socket.IO 服务器,但它似乎真的很随意。我已经尝试了一些 C# Socket.Io 端口,SocketIoClientDotNet actually works perfectly, until you try to run it in Mono then it has this error
您可以使用 TCP 将任何东西连接到 XSockets.NET 服务器,因为 XSockets 允许跨协议通信。在明文中,这意味着 XSockets 不关心每个客户端的 "transport" 或 "language"。服务器也不关心消息格式,因为每个协议都负责将消息转换为 in/out
您不能将 XSockets 客户端与 socket.io 服务器一起使用。他们可能会连接,但消息的格式不会直接适合 socket.io.
由于您的任务似乎是将 C#/Mono 与 socket.io 一起使用,只需使用 XSockets C# 客户端(或 C# 中的任何其他 websocket 客户端)并为 socket.io 重建它。 XSockets 客户端在 Mono 上运行并且是开源的 on github
我的猜测是,其他客户端将更容易移植,因为 XSockets 客户端非常特定于 XSockets,并且可能比 C# 中的简单 websocket 客户端更复杂
我想知道是否可以使用 XSocket as a client and 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 ();
}
奇怪的是它似乎连接上了,但我没有得到任何数据....我认为这与控制器有关,事实上我只是弥补了,因为我不确定当您尝试使用 Socket.IO 后端时,您会为控制器命名...
--输出
Disconnected
Connected
奇怪的是断开连接首先触发....不知道那是什么
旁注:
我希望能够在 C# 中连接到 Socket.IO 服务器,但它似乎真的很随意。我已经尝试了一些 C# Socket.Io 端口,SocketIoClientDotNet actually works perfectly, until you try to run it in Mono then it has this error
您可以使用 TCP 将任何东西连接到 XSockets.NET 服务器,因为 XSockets 允许跨协议通信。在明文中,这意味着 XSockets 不关心每个客户端的 "transport" 或 "language"。服务器也不关心消息格式,因为每个协议都负责将消息转换为 in/out
您不能将 XSockets 客户端与 socket.io 服务器一起使用。他们可能会连接,但消息的格式不会直接适合 socket.io.
由于您的任务似乎是将 C#/Mono 与 socket.io 一起使用,只需使用 XSockets C# 客户端(或 C# 中的任何其他 websocket 客户端)并为 socket.io 重建它。 XSockets 客户端在 Mono 上运行并且是开源的 on github
我的猜测是,其他客户端将更容易移植,因为 XSockets 客户端非常特定于 XSockets,并且可能比 C# 中的简单 websocket 客户端更复杂