使用.NetCore ...
我有一个C#服务器端代码。
它将创建一个对象列表,例如:
[Serializable]
public class MyObject
{
public string test { get; set;}
}
var manyOfTheseObjects = new List<MyObject>();
manyOfTheseObjects ~ add a few records
我现在转换为ByteArray〜
var binFormatter = new BinaryFormatter();
var mStream = new MemoryStream();
binFormatter.Serialize(mStream, manyOfTheseObjects);
socket.Send(mStream.ToArray());
在JavaScript方面,我正在Web套接字上监听
ws.onopen = function (data) {
try {
console.log("onopen");
console.log(JSON.parse(data).result);
$("#divConnectionStatus").html("Client connected");
resume= 1;}
catch (err) {
console.log(err);
$("#divConnectionStatus").html("onopen: " + err);
}
};
我得到了错误:
SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at WebSocket.Connect.ws.onopen (LiveFeed.js:182)
我显然做错了一切...
NB
更改了此内容
var binFormatter = new BinaryFormatter();
var mStream = new MemoryStream();
binFormatter.Serialize(mStream, manyOfTheseObjects);
socket.Send(mStream.ToArray());
对此:
socket.Send( JsonConvert.SerializeObject(manyOfTheseObjects ) );
答案 0 :(得分:1)
现在您已切换到JSON序列化器:您想要onmessage
,而不是onopen
:
ws.onmessage = function (evt) {
try {
console.log("onmessage");
console.log(JSON.parse(evt.data).result);
$("#divConnectionStatus").html("Message received");
resume= 1;}
catch (err) {
console.log(err);
$("#divConnectionStatus").html("onmessage: " + err);
}