ASP.NET C# WebSocket
本文关键字:WebSocket NET ASP | 更新日期: 2023-09-27 18:17:40
我已经创建了一个ASP。NET c#项目,它由一个web表单和一个WebSocket处理程序组成。我想发送2个数据(名称&价格数据)从JSON字符串格式的web表单到WebSocket处理程序。下面是web表单中的代码片段:
ws.onopen = function()
{
var name = "Client Product";
var price = 10.8;
ws.send(JSON.stringify(name));
ws.send(JSON.stringify(price));
alert("Message is sent...");
};
在WebSocket处理程序的OnMessage(string)方法中,我想检索web表单发送的2个数据,并将2个数据反序列化为c#格式。下面是WebSocket处理程序中的代码片段:
public override void OnMessage(string message)
{
string serverName="";
string serverPrice = "";
serverName = JsonConvert.DeserializeObject<string>(message);
serverPrice = JsonConvert.DeserializeObject<string>(message);
}
然而,在WebSocket处理程序的onMessage(string)方法下,变量serverName和serverPrice都将被分配为"Client Product"。我希望变量serverPrice被分配为"10.8",而不是"客户端产品"。
谁能告诉我怎么才能做到这一点?如果你能帮助我,我将非常感激:)谢谢:)
如果您希望在单个JSON消息中发送多个数据块,则需要将它们组合成一个对象。试试这样:
客户端:
ws.onopen = function()
{
var obj = {
name: "Client Product",
price: "10.8"
};
ws.send(JSON.stringify(obj));
alert("Message is sent...");
};
服务器端:
public override void OnMessage(string message)
{
MyData obj = JsonConvert.DeserializeObject<MyData>(message);
string serverName = obj.Name;
string serverPrice = obj.Price;
...
}
public class MyData
{
// Important: these JsonProperty attributes MUST match
// the names of the properties in the client object
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("price")]
public string Price { get; set; }
}