2017-09-07 5 views
1

L'objet Stringizing de l'éditeur three.js échoue avec l'erreur Range - longueur de chaîne non valide. Nous avons donc essayé d'obtenir les clés de l'objet Scène et de les avoir stringifiées séparément et essayé de les envoyer au serveur en utilisant WebSockets, mais cela a échoué avec une taille de charge maximale dépassée error.any aide à envoyer cet objet scène énorme au serveur sera appréciéÉchec de la déformation de la scène Three.js

+3

Plutôt que d'envoyer toute la scène, pourquoi ne pas simplement envoyer des données pertinentes pour votre processus serveur? Cela peut être n'importe quoi à partir des ID et des matrices de transformation, jusqu'aux tampons de géométrie. Mais essayer d'envoyer le ou les objets entiers sous la forme d'une chaîne sonne vraiment mal. Si vous devez envoyer toute la scène, jetez un coup d'oeil à un format de transmission, comme JSON ou GLTF. – TheJim01

+0

Lorsqu'il est stringifié, la longueur est énorme, ce qui entraîne une erreur de plage invalide. Mon intention est d'envoyer les détails de la scène au serveur comme json initial lorsque l'utilisateur sauvegarde le projet 3d la première fois et plus tard les modifications de delta json sont envoyées au serveur et appliquées au json initial pour enregistrer les données correspondant aux modifications le projet – Praveen

Répondre

0

Je n'ai pas assez de réputation pour commenter, donc je vais laisser une réponse courte.

J'ai eu le même problème que vous Praveen, mais j'ai fini par faire ce que suggère TheJim01 car il est beaucoup plus succint.

Pour votre projet, il est préférable de créer une sorte de classe ou d'état qui contient les modifications pertinentes à votre projet, puis d'avoir une autre classe chargée d'instancier ces modifications sur la scène.

Si ce n'est pas une option que vous devriez être en mesure d'utiliser le scene.toJSON() comme expliqué dans la documentation here