mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-03 09:49:28 +02:00
94 lines
No EOL
3 KiB
JavaScript
94 lines
No EOL
3 KiB
JavaScript
var socketMyResourceId = 0;
|
|
var socketConnectRequested = 0;
|
|
function socketConnect() {
|
|
if(socketConnectRequested){
|
|
return false;
|
|
}
|
|
socketConnectRequested = 1;
|
|
console.log('Trying to reconnect on ' + webSocketURL);
|
|
conn = new WebSocket(webSocketURL);
|
|
conn.onopen = function (e) {
|
|
console.log("Socket onopen", e);
|
|
socketMyResourceId = 0;
|
|
sendSocketMessageToNone("webSocketToken", "");
|
|
return false;
|
|
};
|
|
conn.onmessage = function (e) {
|
|
//console.log("Socket onmessage", e);
|
|
var json = JSON.parse(e.data);
|
|
console.log("Socket onmessage", json);
|
|
if (!socketMyResourceId) {
|
|
socketMyResourceId = parseInt(json.ResourceId);
|
|
var msg = "Socket socketMyResourceId " + socketMyResourceId;
|
|
//sendSocketMessage(msg, "", "");
|
|
console.log(msg);
|
|
} else {
|
|
var myfunc;
|
|
if (json.callback) {
|
|
var code = "if(typeof " + json.callback + " == 'function'){myfunc = " + json.callback + ";}else{myfunc = defaultCallback;}";
|
|
//console.log(code);
|
|
eval(code);
|
|
} else {
|
|
console.log("onmessage: callback not found");
|
|
myfunc = defaultCallback;
|
|
}
|
|
myfunc(json);
|
|
}
|
|
|
|
};
|
|
conn.onclose = function (e) {
|
|
socketConnectRequested = 0;
|
|
console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason);
|
|
setTimeout(function () {
|
|
socketConnect();
|
|
}, 1000);
|
|
};
|
|
|
|
conn.onerror = function (err) {
|
|
socketConnectRequested = 0;
|
|
console.error('Socket encountered error: ', err.message, 'Closing socket');
|
|
conn.close();
|
|
};
|
|
}
|
|
|
|
function sendSocketMessageToAll(msg, callback) {
|
|
sendSocketMessageToUser(msg, callback, "");
|
|
}
|
|
|
|
function sendSocketMessageToNone(msg, callback) {
|
|
sendSocketMessageToUser(msg, callback, -1);
|
|
}
|
|
|
|
function sendSocketMessageToUser(msg, callback, users_id) {
|
|
if (conn.readyState === 1) {
|
|
conn.send(JSON.stringify({msg: msg, webSocketToken: webSocketToken, callback: callback, users_id, users_id}));
|
|
} else {
|
|
console.log('Socket not ready send message in 1 second');
|
|
setTimeout(function () {
|
|
sendSocketMessageToUser(msg, callback, to_users_id);
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
function sendSocketMessageToUser(msg, users_id, callback) {
|
|
if (conn.readyState === 1) {
|
|
conn.send(JSON.stringify({msg: msg, webSocketToken: webSocketToken, users_id: users_id, callback: callback}));
|
|
} else {
|
|
console.log('Socket not ready send message in 1 second');
|
|
setTimeout(function () {
|
|
sendSocketMessageToUser(msg, users_id, callback);
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
function isSocketActive(){
|
|
return typeof conn != 'undefined' && conn.readyState === 1;
|
|
}
|
|
|
|
function defaultCallback(json) {
|
|
//console.log('defaultCallback', json);
|
|
}
|
|
|
|
$(function () {
|
|
socketConnect();
|
|
}); |