В принципе, socket.io использует nativeJSON для кодирования и декодирования пакетов, и моя проблема в том, что я обязан использовать эту версию прототипа, которая изменяет поведение JSON. Когда я должен получить в серверном что-то вроде:PrototypeJS версия 1.6.0.2 Переопределяет JSON.parse и JSON.stringify и разрывает функциональность socket.io
socket.on('event', function (a, b, c)
, я socket.on('event', function ([a, b, c], undefined, undefined)
.
Одним из решений является комментировать эти строки на json.js:
/* socket.io-client/lib/json.js
if (nativeJSON && nativeJSON.parse){
return exports.JSON = {
parse: nativeJSON.parse
, stringify: nativeJSON.stringify
};
}
*/
, но это изменение влияет на производительность серьезно.
Есть ли способ восстановить родные функции JSON? Можно ли создать скрытый iframe для клонирования объекта JSON для восстановления старой функции?
Я не совсем понимаю проблему. Можете ли вы объяснить это немного глубоко? –