twsfn5 = window.twsfn5 || {} vc2 = { key:"key", } if (!window.gws){ window.gws = { sockets:{}, } } gws.twsfn5 = twsfn5 // gws // Object.keys(twsfn5_bak) // Object.keys(twsfn5) // Object.keys(twsfn5_bak) +"" == Object.keys(twsfn5)+"" function connect_helper5(){ var o = { // ':8943/ws/vts/' // url:'wss://' + window.location.host + '/ws/vts2/' + window.roomName.toLowerCase() + '/?CONN', url:'wss://' + window.location.host + ':8943/ws/vts2/' + window.roomName.toLowerCase() + '/?CONN', wsfn:twsfn5, name:"ws_n15", } clog("o",o) connect_ws_arg(o) } // connect_ws_arg() // 'wss://' + window.location.host + // '/ws/vts/' + window.roomName + '/?qqAAAAAAAAAAAAAAAAA' twsfn5.ts_t2x = function(data) { clog("ts_t2x",data) var k,v for ([k,v] of Object.entries(data.obj.times)){ clog(k,v.t - data.obj.t0 ) } } twsfn5.ts_t0x = function(data) { // clog("pub_msg",pub_msg) var msg = {} msg[vc2.key] = "ts_t1" twsfn5.s(msg) } twsfn5.ts_test = function(data) { // clog("pub_msg",pub_msg) // var msg = {} // msg[vc2.key] = "ts_t1" // twsfn.s(msg) clog("jx twsfn5.ts_test TEST") } twsfn5.pub_msg = function(data) { clog("pub_msg",data) // var msg = {} // msg[vc2.key] = "pong" // twsfn5.s(msg) } twsfn5.qdb_got = function(data) { clog("jx qdb_data",data) clog("jx qdb_got",data.obj) clog(data.obj) } twsfn5.qdb_got3 = function(data) { clog("jx qdb_data",data) clog("jx qdb_got",data.obj) clog("~jx~",data.obj.participants,data.obj.corners) } twsfn5.recv_corners = function(data) { // clog("jx qdb_data",data) // clog("jx qdb_got",data.obj) glob_corner.corners=data.obj.corners cad_ts5r() clog("~jx~",data.obj.participants,data.obj.corners) } twsfn5.pingpong = function(data) { // clog("VFB5 PONG2!") var msg = {} msg[vc2.key] = "pong" twsfn5.s(msg) } twsfn5.onmessage = function(e) { var recv_ts_u0 = window.performance.now() var recv_ts = Date.now() var recv_ts_u1 = window.performance.now() // clog("VFB MSG",e) // clog() // return var data = JSON.parse(e.data); data.recv_ts = recv_ts data.recv_ts_u0 = recv_ts_u0 data.recv_ts_u1 = recv_ts_u1 if (data.type != "pingpong"){ // clog("ixq twsfn5.onmessage") } // clog("VFB data",data) // clog("WS ONMSG",data) if (data.message != undefined){ // twsfn5.on_chat_message(data) } if (data.type != undefined && twsfn5[data.type]){ twsfn5[data.type](data,e) } else { clog("VFB data",data) } }; twsfn5.onopen = function(e) { clog("jx ONCON...") chatSocket.onopen // clog("jx ONCON....") // window.qdb ? onconnect : console.err("ERR no qdb") // window.qdb ? window.qdb.onconnect() : console.error(" jx ERR no qdb") window.qdb ? window.qdb.onconnect_2() : console.error(" jx ERR no qdb") // console.error(" jx ERR test") // console.error(" jx ERR test2") // clog("jx ONCON... fin") } twsfn5.onclose = function(e) { console.error('VFB2 vChat socket closed unexpectedly'); setTimeout(connect_helper5,1400) // setTimeout(vconnect_ws,1400) }; twsfn5.s= function(o){ if (o.key != "pong"){ // clog("ixq twsfn5.send") } var vchatSocket = gws.sockets["ws_n15"] // .send(JSON.stringify(o)); // twsfn5.s0 = vchatSocket.send(JSON.stringify(o)); } // s =twsfn5.s // vconnect_ws() // delete qdb { class QDB { constructor(){ this.db = {} } onconnect(){ qdb.get_corners() } onconnect_2(){ clog("JX onconnect_2") // qdb.get_corners() // setTimeout(this.get_corners.bind(this,1000)) setTimeout(this.get_corners.bind(this),100) setTimeout(this.get_corners.bind(this),2000) get_cui_html(rldi.files["cui3.html"]) // setTimeout(this.get_corners.bind(this,1000)) // setTimeout(this.get_corners.bind(this,)) // setTimeout(qdb.get_corners.bind(this,100) // qdb.get_corners() } send(o){ twsfn5.s(o) } q(action){ this.send({"key":"qdb","action":action}) } get_db(){ this.send({"key":"qdb","action":"get_db"}) } get_db2(){ this.send({"key":"qdb","action":"get_db2"}) } set_db(){ this.send({"key":"qdb","action":"set_db"}) } update(){ } proc_response(data){ clog("jx proc_response",data) } updated(){ } set_corners(corner_name){ this.send({"key":"qdb","action":"set_corners","corner_name":corner_name}) } get_corners(corner_name){ clog("jx get_corners abc 123",this) this.send({"key":"qdb","action":"get_corners"}) } add_corner(corner_name){ this.send({"key":"qdb","action":"add_corner","corner_name":corner_name}) } remove_corner(corner_name){ this.send({"key":"qdb","action":"remove_corner","corner_name":corner_name}) } move(corner_name){ this.send({"key":"qdb","action":"move","corner_name":corner_name}) } time_sync(){ clog("TIME SYNC") // Date.now() this.send({"key":"qdb","action":"time_sync","t0":Date.now(),"t0_u":window.performance.now()}) } // server_ts } window.QDB = QDB } function replace_proto(){ window.qdb.__proto__ = QDB.prototype var vchatSocket = gws.sockets["ws_n15"] var wsfn = twsfn5 vchatSocket.onmessage = wsfn.onmessage vchatSocket.onclose = wsfn.onclose vchatSocket.onopen = wsfn.onopen } if (!window.qdb){ window.qdb = new QDB() } window.QDB_def0 = QDB + "" if (window.QDB_def0 != window.QDB_def){ if (window.QDB_def){ window.QDB_def = QDB + "" replace_proto() } window.QDB_def = QDB + "" } if (window.qdb){ twsfn5.client_qbd = window.qdb.proc_response } twsfn5.get_db = function(){ } twsfn5.server_ts = function(data,e){ var ts_u1 = window.performance.now() var t1 = Date.now() var t0 = data.req.t0 var ts = data.server_time var tsx =ts * 1000 var ta = (t0+t1)/2 tsd = new Date(ts*1000) t0d = new Date(t0) t1d = new Date(t1) td2 = ta - tsx td = tsx - ta tarr = [[t1,"t1"],[tsx,"tsx"],[t0,"t0"],[ta,"ta"],[td,"td"],[td2,"td2"]] tobj = {t1,tsx,t0,ta,td,td2} clog("ts:",t1 - data.recv_ts,ts_u1- data.recv_ts_u1,data) // clog("ts:",{t0,ts,t1}) // clog("ts3:",(t0+t1)/2 - (ts *1000),t0 - t1) t01 = t0 - t1 t01_u = data.req.t0_u - ts_u1 clog("ts3:",(t0+t1)/2 - tsx,t0-tsx,t1-tsx,t0 - t1) if (!qdb.td){ qdb.td = 0 } clog("ts4:",qdb.td - td,"~",qdb.td,td) clog("ts5:",t01,t01_u) qdb.td = td qdb.td2 = td2 if (window.clock_info_draw){ clock_info_draw() } } twsfn5.update_db = function(){} twsfn5.updated_db = function(){} function rld_continues(){ clog("vfb jx RC") if (window.stop_flag){ return } twsfn5.s({"key":"rld"}) setTimeout(rld_continues,500) } // connect_helper5() // setTimeout clog("BX5")