Я создаю javascript чат WebSocket, но сразу после открытия он снова закрывается. Код достаточно длинный для онлайн-форума, но если он вам понадобится, я с радостью его вам предоставлю. Я также использую chrome. Вот код:
window.onbeforeunload = function() {
socket.send("alert('" + username + " has disconnected from the server.')");
socket.close();
}
var username = prompt("Enter your name (It name will be displayed to others)")
var socket = new WebSocket("MY_WEBSOCKET_URL");
socket.onopen = function() {
socket.send("otherusers();");
alert("Connected to server. Press 'esc' to disconnect. Type 'send' to send something.");
alert("The users on this server will be displayed shortly (if any)")
socket.send("alert('A new user has connected with the username " +
username + ".')")
};
socket.onclose = function() {
alert("Disconnected from server.")
}
socket.onerror = function(e) {
alert("There was a server error: " + e.data);
}
socket.onmessage = function(e) {
eval(e.data);
//create history
save(e.data);
}
window.addEventListener("keydown", keydown);
window.addEventListener("keyup", keyup);
var s = false;
var ee = false;
var n = false;
function keydown(e) {
//send
if (e.keyCode == 83) {
s = true;
}
if (e.keyCode == 69) {
if (s == true) {
ee = true;
}
}
if (e.keyCode == 78) {
if (ee == true) {
n = true;
}
}
if (e.keyCode == 68) {
if (n == true) {
s = false;
e = false;
n = false;
var message = prompt("What message would you like to send? (Type 'Stop' to send nothing)");
send(message);
}
}
if (e.keyCode == 192) {
var messages = document.getElementsByClassName("ALINTIOKNALSFJI");
for (var i = 0, max = messages.length; i < max; i++) {
messages[i].setAttribute("style", "color: black; background-color: white;");
}
}
if (e.keyCode == 27) {
socket.send("alert('" + username + " has disconnected from the server.')");
socket.close();
window.removeEventListener("keydown", keydown);
window.removeEventListener("keyup", keyup);
}
}
function keyup(e) {
if (e.keyCode == 192) {
var messages = document.getElementsByClassName("ALINTIOKNALSFJI");
for (var i = 0, max = messages.length; i < max; i++) {
messages[i].setAttribute("style", "color: transparent; background-color: transparent;");
}
}
}
function send(message) {
if (message !== "Stop") {
socket.send("alert('Message recieved from " + username + ": " + message + "');");
save("alert('Message sent: " + message + "');");
}
}
function otherusers() {
socket.send("alert('User on server: " + username + "');")
}
function save(message, float) {
var p = document.createElement("p");
p.innerHTML = message;
if (!float) {
float = "left";
}
p.setAttribute("style", "color: transparent; z-index: 1000000; background-color: transparent; float: " + float + ";");
p.setAttribute("class", "ALINTIOKNALSFJI")
document.body.appendChild(p);
}
Это дает мне эту ошибку:
SyntaxError: Unexpected token ':'
at WebSocket.socket.onmessage (/hackertools/chat.js:20:10)
К вашему сведению, это букмарклет.