WebSocketsSharp 自定义事件反序列化
WebSocketsSharp custom events deserialize
我必须构建一个功能,我可以使用 websockets-sharp
发送自定义事件。
我创建了一个函数 MakePacket
,它为我创建了一个像这样的字符串 ["draw:drawer:accept","{\"imei\":\"123\"}"]
,我可以发送它。
public string MakePacket(string eventName, string data)
{
return JsonConvert.SerializeObject(new[] { eventName, data });
}
所以我想在另一个方向上做同样的事情。当发生传入事件时,我想将其转换回 eventName
和 PayLoad
.
所以我创建了一个数据模型:
public class PacketModel
{
public string EventName { get; set; }
public string PayLoad { get; set; }
}
我试着用这个函数来转换它:
public PacketModel OpenPacket(string data)
{
PacketModel packet = JsonConvert.DeserializeObject<PacketModel>(data);
return packet;
}
但这不起作用...
有人知道我该怎么做吗?
谢谢
我创建了一个示例,说明如何使用 WebSocket-Sharp
和 socket.io
等自定义事件。
我 post 我的 git 存储库中的示例:
感谢@Evk 的帮助
你可以这样做:
public static class sConnection
{
public static WebSocket socket;
public static bool connected = false;
public static bool result = false;
public static void Main()
{
socket = Connect();
socket.Connect();
while (!result) { }
}
public static WebSocket Connect()
{
var socket = new WebSocket(url: ""); //Your websoket enpoint
socket.OnOpen += (sender, e) =>
{
isConnected = true;
};
socket.OnClose += (sender, e) =>
{
isConnected = false;
};
socket.OnMessage += (sender, e) =>
{
//Converting the event back to 'eventName' and 'Json'
PacketHandler packetHandler = new PacketHandler();
PacketModel packet = packetHandler.OpenPacket(e.Data);
//Do something with the message
result = true;
};
return socket;
}
}
我必须构建一个功能,我可以使用 websockets-sharp
发送自定义事件。
我创建了一个函数 MakePacket
,它为我创建了一个像这样的字符串 ["draw:drawer:accept","{\"imei\":\"123\"}"]
,我可以发送它。
public string MakePacket(string eventName, string data)
{
return JsonConvert.SerializeObject(new[] { eventName, data });
}
所以我想在另一个方向上做同样的事情。当发生传入事件时,我想将其转换回 eventName
和 PayLoad
.
所以我创建了一个数据模型:
public class PacketModel
{
public string EventName { get; set; }
public string PayLoad { get; set; }
}
我试着用这个函数来转换它:
public PacketModel OpenPacket(string data)
{
PacketModel packet = JsonConvert.DeserializeObject<PacketModel>(data);
return packet;
}
但这不起作用...
有人知道我该怎么做吗?
谢谢
我创建了一个示例,说明如何使用 WebSocket-Sharp
和 socket.io
等自定义事件。
我 post 我的 git 存储库中的示例:
感谢@Evk 的帮助
你可以这样做:
public static class sConnection
{
public static WebSocket socket;
public static bool connected = false;
public static bool result = false;
public static void Main()
{
socket = Connect();
socket.Connect();
while (!result) { }
}
public static WebSocket Connect()
{
var socket = new WebSocket(url: ""); //Your websoket enpoint
socket.OnOpen += (sender, e) =>
{
isConnected = true;
};
socket.OnClose += (sender, e) =>
{
isConnected = false;
};
socket.OnMessage += (sender, e) =>
{
//Converting the event back to 'eventName' and 'Json'
PacketHandler packetHandler = new PacketHandler();
PacketModel packet = packetHandler.OpenPacket(e.Data);
//Do something with the message
result = true;
};
return socket;
}
}