从服务器向客户端发送整数数组

时间:2018-07-04 20:22:01

标签: javascript node.js socket.io

我有一个数组:

public function show_class_sections(){

    $class_id = $_POST['class_id'];

    $data = array("success" => false, "html_string" => "");

    $result = array();
    $result = $this->admin_forms->get_class_sections($class_id);

    if(!empty($result)){
        $data['success'] = true;
        $data['html_string'] = $result;
    }


    echo json_encode($data);
}

我想使用socket.emit将此数组发送到客户端。 但是当我使用以下方式发送数据时:

     let numbers = [8,4,2,1,7,5,3,0];

并在客户端使用以下方法收听

   var numbers1 = JSON.stringify(numbers);
  socket.emit('new',{num:numbers1});

在aa的控制台的DevTools上说未定义。

编辑

我写的代码不完整。   完整的客户端代码为:

 socket.on('new',(data)=>{
    var aa = data.num ;
   console.log(aa);
  });

});

显示为错误

   socket.on('new',(data)=>{
var numbers = JSON.parse(data.num); //this will retrieve your array.
console.log(numbers);

这意味着尝试解析的数据是不确定的。

2 个答案:

答案 0 :(得分:0)

之所以会发生这种情况,是因为您使用了JSON.stringify,因此您必须对“ 数据”对象执行JSON.parse才能访问该对象的属性“ num ”。对象发送给客户端。

socket.on('new',(data)=>{
   var aa = JSON.parse(data);
   console.log(aa.num);
});

答案 1 :(得分:0)

发射时应采取的措施如下:

let numbers = [8,4,2,1,7,5,3,0];
var numbers1 = JSON.stringify(numbers);

socket.emit('new',{num:numbers1});

然后您应该在另一侧听这样的声音:

socket.on('new',(data)=>{
    var numbers = JSON.parse(data); //this will retrieve your array.
    console.log(numbers);
});