【问题标题】:using stringify to send data through a socket使用 stringify 通过套接字发送数据
【发布时间】:2015-08-25 03:56:02
【问题描述】:

我对如何对这些数据进行字符串化有点迷茫。

如果我通过套接字发送以下内容(通过旋钮移动,其中 v 是我们的数据):

  socket.send(synth.set("mySynth.freq", v));

然后在收到数据时:

 socket.onmessage = function(evt){
console.log("synth from another browser " + evt.data);
    }

控制台将记录一些对象对象的效果。这告诉我我需要按照说明将我的数据编码为 JSON。我只是不知道这是如何工作的。

所以,我相信它从发送开始:

var object;    
socket.send(JSON.stringify(object));

然后接收

socket.onmessage = function(evt){
var object = JSON.parse(evt.data);
console.log("synth from another browser " + object);
    }

代码位于here

【问题讨论】:

  • 如果你的控制台打印出 [Object object] 这意味着你正在通过网络套接字发送一个 Javascript 对象,你不需要对其进行字符串化
  • 我不确定.. 控制台应该向他显示对象内容,而不仅仅是 [object object]。
  • @Nico 在您将对象 添加 到字符串时不会。在这种情况下,对象将被字符串化为[object Object]。应该是console.log("synth from another browser ", evt.data)(逗号而不是加号)
  • @robertklep 你说得对!

标签: javascript node.js sockets websocket


【解决方案1】:

最后我确实想通了。

//inside the knob handler
var synthobject = {"freq":v, "gate":"1"};     
var jsonstring = JSON.stringify(synthobject);      
socket.send(jsonstring);


   //inside the socket section
 socket.onmessage = function(evt){
 var jsonobject = JSON.parse(evt.data);
 console.log("json import " + jsonobject.freq);
 synth.set("mySynth.freq", jsonobject.freq);
         }

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 2012-02-12
    • 2018-05-23
    相关资源
    最近更新 更多