(想要更新一个使用迄今为止创建的所有聊天室列表登录的新客户端)
假设我做了这样的事情:(每次有人加入应用程序时)
socket.emit('updateClient', rooms);
rooms
是一个对象,由许多组成room
的实例Room
对象本身很小,但有一个相当大的代码作为prototype
of room
的例子rooms
:
var rooms = {}; // contain all "Room" instances
..
..
// 'room' will create new instance for every "room" created
var room= new Room();
// save reference in `rooms`
rooms[room.id] = room;
..
var Room = function(){
this.id = RANDOM NUMBER
this.people = []; // an array of people in the room
}
Room.prototype = {
...
A LOT OF INNER FUNCTIONS
THAT ARE IRRELEVANT TO THE CLIENT
...
}
我的问题是:
原型会发送给客户吗? (不想要那样)
它会让套接字请求以我这样做的方式变得“繁重”吗?
socket.io 可能会使用JSON.stringify
发送任何对象,以及JSON.stringify
仅序列化对象的“自己”属性(并且将忽略除此之外的任何函数)。所以不,发送的序列化对象不会很重。同样,它可能不包含您期望的所有属性。它只会包含那些您在特定的上明确设置的内容room
object.
See 如何将继承的对象字符串化为 JSON? https://stackoverflow.com/questions/8779249/how-to-stringify-inherited-objects-to-json , 为什么 JSON.stringify 不序列化原型值? https://stackoverflow.com/questions/12369543/why-is-json-stringify-not-serializing-prototype-values .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)