21-02-2024, 15:27
Hej,
Da N har valgt at bruge Object.freeze på vores elskede WebSocket, har det vanskeliggjort at bruge de tidligere scripts, der har været delt, men det er bestemt ikke umuligt.
Jeg har lavet en lille step-by-step guide med billeder til, hvordan man kan bruge sockets igen.
https://imgur.com/a/M4bKFJ0
1) Log ind på N
2) Lav "CTRL - SHIFT - I"
3) Klik på sources-fanen
4) Højre klik på "top" og klik "Search in all files"
5) Søg efter "f.onopen" og klik ind på resultatet
6) Klik på linjen ud for "f.onopen"
7) Hop over i N og lav "CTRL - R" eller refresh N
8) Verificer at det ser nogenlunde sådan ud som på billede 5 i linket
9) Klik på console-fanen
10) Skriv "socket = f"
11) Klik nu på linjen ud for "f.onopen" igen og klik på den blå pil i højre hjørne
12) Du kan nu bruge de forskellige scripts igen med socket.send og socket.onmessage
13) Du skal udføre punkterne fra 7 til 11 i et ikke alt for langsomt tempo, ellers ryger forbindelsen til N
Skriv endelig privat hvis der er spørgsmål til metodikken.
Jeg kan forstå at folk stadig har problemer med at få scripts til at fungere, så her er et simpelt script som skriver ".." og tager jeres timer
I må selv rette det til.
Smid nedenstående kode ind i step 10 i stedet:
let socket = f
let proto = WebSocket.prototype.send
let onmessage = socket.onmessage
let myid = null;
socket.onmessage = function (e) {
var cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
var params = cmd[2].split(':');
var hour = params[0],
token = params[1];
setTimeout(function () {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
return onmessage(e);
}
socket.send = function (data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function () {
socket.send('!,' + myid + ',..')
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
}
Da N har valgt at bruge Object.freeze på vores elskede WebSocket, har det vanskeliggjort at bruge de tidligere scripts, der har været delt, men det er bestemt ikke umuligt.
Jeg har lavet en lille step-by-step guide med billeder til, hvordan man kan bruge sockets igen.
https://imgur.com/a/M4bKFJ0
1) Log ind på N
2) Lav "CTRL - SHIFT - I"
3) Klik på sources-fanen
4) Højre klik på "top" og klik "Search in all files"
5) Søg efter "f.onopen" og klik ind på resultatet
6) Klik på linjen ud for "f.onopen"
7) Hop over i N og lav "CTRL - R" eller refresh N
8) Verificer at det ser nogenlunde sådan ud som på billede 5 i linket
9) Klik på console-fanen
10) Skriv "socket = f"
11) Klik nu på linjen ud for "f.onopen" igen og klik på den blå pil i højre hjørne
12) Du kan nu bruge de forskellige scripts igen med socket.send og socket.onmessage
13) Du skal udføre punkterne fra 7 til 11 i et ikke alt for langsomt tempo, ellers ryger forbindelsen til N
Skriv endelig privat hvis der er spørgsmål til metodikken.
Jeg kan forstå at folk stadig har problemer med at få scripts til at fungere, så her er et simpelt script som skriver ".." og tager jeres timer
I må selv rette det til.
Smid nedenstående kode ind i step 10 i stedet:
let socket = f
let proto = WebSocket.prototype.send
let onmessage = socket.onmessage
let myid = null;
socket.onmessage = function (e) {
var cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
var params = cmd[2].split(':');
var hour = params[0],
token = params[1];
setTimeout(function () {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
return onmessage(e);
}
socket.send = function (data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function () {
socket.send('!,' + myid + ',..')
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
}