Если вам необходимо закодировать массив в JSON, я не думаю, что ArrayBuffer поможет. Однако, если вы знаете точную структуру данных отправляемого массива и можете предсказать его на стороне сервера, вы можете создать собственную эффективную схему кодирования / декодирования.
В вашем примере ваши данные - это просто массив пар x
и y
значений, где каждое значение является целым числом. Чрезвычайно простой, но, возможно, плодотворный подход заключается в извлечении данных из предсказуемых (ненужных) ключей x
и y
и их кодировании в виде простой строки CSV (значение, разделенное запятыми).
Например:
[{x:0,y:0},{x:0,y:1},{x:1,y:1},{x:1,y:2}]
будет кодироваться как строка:
0,0,0,1,1,1,1,2
Однако наиболее эффективный подход, вероятно, заключался бы в том, чтобы отказаться от socket.io для вашего собственного пользовательского интерфейса веб-сокета, который может каким-то образом отправлять двоичные данные напрямую, а не кодировать их в виде JSON. JSON по своей природе будет радикально неэффективен для отправки большого набора данных по сравнению с отправкой закодированного двоичного файла.
Редактировать: похоже, что socket.io может отправлять двоичные данные, поэтому я хотел бы изучить это вместе с некой эффективной схемой кодирования / декодирования, адаптированной к вашему набору данных.