socket.io为什么不能发送JSON

命令行运行node server.js,打开127.0.0.1:3000,出现Maximum call stack size exceeded报错。

服务端关键代码如下:


var userList = {};

...

io.sockets.on('connection', function (socket) {

    var session = socket.id;

    userList[session] = socket;

    socket.emit('rs',userList);

})

客户端关键代码如下:


socket.on('rs',function(userList){

    console.log(userList);

}

我试过传字符串没有问题,但是传这个JSON就不行了,为什么呢?是因为userList太大了吗?


补充:

刚刚按照下面的回答,试着把JSON转成字符串,结果发现还是报错TypeError: Converting circular structure to JSON

报错代码如下:

https://img4.mukewang.com/5c497cd70001ca1910130243.jpg

Cats萌萌
浏览 449回答 1
1回答

皈依舞

既然字符串可以,那你把JSON序列化成字符串不就可以了。检查代码有造成循环结构的操作吗,比如这样:var selfish = {};selfish.friend = selfish;JSON.stringify(selfish);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript