Судя по мануалам https://learn.javascript.ru/websockets
Протокол WebSocket работает над TCP.
Это означает, что при соединении браузер отправляет по HTTP специальные заголовки, спрашивая: «поддерживает ли сервер WebSocket?».
Если сервер в ответных заголовках отвечает «да, поддерживаю», то дальше HTTP прекращается и общение идёт на специальном протоколе WebSocket, который уже не имеет с HTTP ничего общего.
Создать подобный XMLHttpRequest-запрос (подделать WebSocket) невозможно, по одной простой причине: указанные выше заголовки запрещены к установке методом setRequestHeader.
Получается через BAS не получится работать с websockets?
На github нашёл js сниффер websockets.
(function () {
WebSocket.prototype._send = WebSocket.prototype.send;
WebSocket.prototype.send = function (data) {
this._send(data);
this.addEventListener('message', function (msg) {
console.log('>> ' + msg.data);
}, false);
this.send = function (data) {
this._send(data);
console.log("<< " + data);
};
console.log("<< " + data);
}
})()
Он работает выводя всю информацию, которую fiddler не видел.
Данные вида
"socket_hash":"c5Qwte","info":"number"}
Образование хеша и сами функции у меня есть, декодированные и деобфускациониронные js ..
Вопрос:В теории, можно ведь не загружая страницу, даже на пустой в BAS'e использовать экшен явасрипт, и скопировать туда функции js?
Или сохранить страницу, руками вырезать всё, кроме обращений js и работать с ним..
Походу единственный вариант остаётся - написать модуль для работы с websockets.