// clientone.js
var piece = new BoardPiece();
// ...
socket.send(JSON.stringify(piece));
// clienttwo.js
var piece = BoardPiece.Create(JSON.parse(json));
...
// BoardPiece.js
function BoardPiece() {
}
BoardPiece.prototype.toJSON = function() {
var data = {};
data.foo = this.foo;
...
return data;
};
BoardPiece.Create = function(data) {
var piece = new BoardPiece();
piece.foo = data.foo;
...
return piece;
}
Во-первых, использование метода toJSON
на ваших объектах позволяет JSON.stringify
немедленно конвертировать ваш объект в JSON. Это часть JSON API. JSON API вызовет метод toJSON
, если он существует, и преобразует этот объект в JSON.
Это в основном позволяет сериализовать ваш объект так, как вы хотите.
Вторая часть - это добавление метода фабрики в качестве свойства вашего конструктора, который берет ваши сериализованные данные JSON и создает новую часть платы. Затем он вставит ваши сериализованные данные в этот объект платы.
Таким образом, вы сериализуете только те данные, которые вам нужны, а затем передаете эти данные фабричным методом. Это лучший способ отправки пользовательских объектов от одного клиента другому.