Итак, есть вебсокет-сервер (игра) и ему требуются сообщения сокета.io типа: 42["game:chat-public:msg","{\"id\":\"2qxgs2\",\"pId\":\"nfityk\",\"msg\":\"example\",\"date\":1764384827484}"]. Как видите, это массив, но вторая часть массива представляет собой json с обратной косой чертой. В игре запрещен прямой json.
Поэтому я сделал это, чтобы справиться с этим:
Код: Выделить всё
const messagePayloadObj = {
msg: msg,
pId: createRandomId()
};
// JSON string
const messagePayloadString = JSON.stringify(messagePayloadObj);
// ESCAPED (Socket.IO expected format)
const escaped = `"${messagePayloadString.replace(/"/g, '\\"')}"`;
if(w.readyState === WebSocket.OPEN){
w.send(`42["game:chat-public:msg",${escaped}]`)
}
Все в порядке, но некоторые сообщения, которые я хочу отправить, представляют собой ответы, сгенерированные искусственным интеллектом, и вы знаете, в ответах искусственного интеллекта есть обратная косая черта, символы новой строки и т. д. (\n). Таким образом, он не работает в сообщениях, сгенерированных искусственным интеллектом, поскольку они отправляются как строка.
Как избежать всех обратных косых черт, включающих искусственный интеллект?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... ed-answers