gpt4 book ai didi

javascript - 如何通过socket io发送对象数组?

转载 作者:太空宇宙 更新时间:2023-11-03 22:28:54 25 4
gpt4 key购买 nike

我在通过发送对象数组时遇到了问题套接字io

我的服务器端代码

var addEntity = function(ent) {
entityBag.push(ent);
};
var entityBag = [];
addEntity(new Circle({
x: Math.random() * 5000,//(i%20) * space,
y: Math.random() * 5000,//Math.floor(i/20)*space,
color: ['red', 'blue', 'green', 'yellow', 'purple', 'brown', 'violet'][Math.floor(Math.random()*7)],
droplet: true
}));
socket.emit('updatePos',entityBag);

和我的客户端代码

var entityBag = [];
socket.on('updatePos', function(msg) {
entityBag = msg;
});

所以当我尝试调试问题时,数组中的所有对象在客户端代码中都是空的。所以我可能猜测错误与套接字有关

如果问题太琐碎,请原谅我的无知

Circirce 类

function Circle(attr) {
attr = attr
var x = attr.x;
var y = attr.y;
var color = attr.color ;
var borderColor = attr.borderColor || 'black';
var droplet = attr.droplet ;
}

最佳答案

我看不到你的整个代码,所以我找不到其中的错误,但我尝试写一些类似的东西:

服务器.js:

'use strict';
const io = require('socket.io')(3000);
var entityBag = [];
var someObject = {
x: Math.random() * 5000,//(i%20) * space,
y: Math.random() * 5000,//Math.floor(i/20)*space,
color: ['red', 'blue', 'green', 'yellow', 'purple', 'brown', 'violet'][Math.floor(Math.random()*7)],
droplet: true
}
var anotherObject = {
name: 'Utsav Mangal',
color: ['red', 'blue', 'green', 'yellow', 'purple', 'brown', 'violet'],
human: true,
somekey: 'foo'
}
var addEntity = function(ent) {
entityBag.push(ent);
};
addEntity(someObject);
addEntity(anotherObject);
io.on('connection', function (socket) {
socket.emit('updatePos', entityBag);
});
console.log('Plain socket.io server started at port 3000');

客户端.js

'use strict';
const socket = require('socket.io-client')('http://localhost:3000');
socket.on('updatePos', function(data) {
console.log(data);
});

您可以尝试使用 Node 服务器启动服务器并使用 Node 客户端连接到它,一切正常。你不必 JSON.stringify/parse,socket.io 会为你做这件事。你的错误在其他地方。请向我们展示完整的代码。

关于javascript - 如何通过socket io发送对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com