Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. twsfn5 = window.twsfn5 || {}
  2. vc2 = {
  3. key:"key",
  4. }
  5. if (!window.gws){
  6. window.gws = {
  7. sockets:{},
  8. }
  9. }
  10. gws.twsfn5 = twsfn5
  11. // gws
  12. // Object.keys(twsfn5_bak)
  13. // Object.keys(twsfn5)
  14. // Object.keys(twsfn5_bak) +"" == Object.keys(twsfn5)+""
  15. function connect_helper5(){
  16. var o = {
  17. // ':8943/ws/vts/'
  18. // url:'wss://' + window.location.host + '/ws/vts2/' + window.roomName.toLowerCase() + '/?CONN',
  19. url:'wss://' + window.location.host + ':8943/ws/vts2/' + window.roomName.toLowerCase() + '/?CONN',
  20. wsfn:twsfn5,
  21. name:"ws_n15",
  22. }
  23. clog("o",o)
  24. connect_ws_arg(o)
  25. }
  26. // connect_ws_arg()
  27. // 'wss://' + window.location.host +
  28. // '/ws/vts/' + window.roomName + '/?qqAAAAAAAAAAAAAAAAA'
  29. twsfn5.ts_t2x = function(data) {
  30. clog("ts_t2x",data)
  31. var k,v
  32. for ([k,v] of Object.entries(data.obj.times)){
  33. clog(k,v.t - data.obj.t0 )
  34. }
  35. }
  36. twsfn5.ts_t0x = function(data) {
  37. // clog("pub_msg",pub_msg)
  38. var msg = {}
  39. msg[vc2.key] = "ts_t1"
  40. twsfn5.s(msg)
  41. }
  42. twsfn5.ts_test = function(data) {
  43. // clog("pub_msg",pub_msg)
  44. // var msg = {}
  45. // msg[vc2.key] = "ts_t1"
  46. // twsfn.s(msg)
  47. clog("jx twsfn5.ts_test TEST")
  48. }
  49. twsfn5.pub_msg = function(data) {
  50. clog("pub_msg",data)
  51. // var msg = {}
  52. // msg[vc2.key] = "pong"
  53. // twsfn5.s(msg)
  54. }
  55. twsfn5.qdb_got = function(data) {
  56. clog("jx qdb_data",data)
  57. clog("jx qdb_got",data.obj)
  58. clog(data.obj)
  59. }
  60. twsfn5.qdb_got3 = function(data) {
  61. clog("jx qdb_data",data)
  62. clog("jx qdb_got",data.obj)
  63. clog("~jx~",data.obj.participants,data.obj.corners)
  64. }
  65. twsfn5.recv_corners = function(data) {
  66. // clog("jx qdb_data",data)
  67. // clog("jx qdb_got",data.obj)
  68. glob_corner.corners=data.obj.corners
  69. cad_ts5r()
  70. clog("~jx~",data.obj.participants,data.obj.corners)
  71. }
  72. twsfn5.pingpong = function(data) {
  73. // clog("VFB5 PONG2!")
  74. var msg = {}
  75. msg[vc2.key] = "pong"
  76. twsfn5.s(msg)
  77. }
  78. twsfn5.onmessage = function(e) {
  79. var recv_ts_u0 = window.performance.now()
  80. var recv_ts = Date.now()
  81. var recv_ts_u1 = window.performance.now()
  82. // clog("VFB MSG",e)
  83. // clog()
  84. // return
  85. var data = JSON.parse(e.data);
  86. data.recv_ts = recv_ts
  87. data.recv_ts_u0 = recv_ts_u0
  88. data.recv_ts_u1 = recv_ts_u1
  89. if (data.type != "pingpong"){
  90. // clog("ixq twsfn5.onmessage")
  91. }
  92. // clog("VFB data",data)
  93. // clog("WS ONMSG",data)
  94. if (data.message != undefined){
  95. // twsfn5.on_chat_message(data)
  96. }
  97. if (data.type != undefined && twsfn5[data.type]){
  98. twsfn5[data.type](data,e)
  99. } else {
  100. clog("VFB data",data)
  101. }
  102. };
  103. twsfn5.onopen = function(e) {
  104. clog("jx ONCON...")
  105. chatSocket.onopen
  106. // clog("jx ONCON....")
  107. // window.qdb ? onconnect : console.err("ERR no qdb")
  108. // window.qdb ? window.qdb.onconnect() : console.error(" jx ERR no qdb")
  109. window.qdb ? window.qdb.onconnect_2() : console.error(" jx ERR no qdb")
  110. // console.error(" jx ERR test")
  111. // console.error(" jx ERR test2")
  112. // clog("jx ONCON... fin")
  113. }
  114. twsfn5.onclose = function(e) {
  115. console.error('VFB2 vChat socket closed unexpectedly');
  116. setTimeout(connect_helper5,1400)
  117. // setTimeout(vconnect_ws,1400)
  118. };
  119. twsfn5.s= function(o){
  120. if (o.key != "pong"){
  121. // clog("ixq twsfn5.send")
  122. }
  123. var vchatSocket = gws.sockets["ws_n15"]
  124. // .send(JSON.stringify(o));
  125. // twsfn5.s0 =
  126. vchatSocket.send(JSON.stringify(o));
  127. }
  128. // s =twsfn5.s
  129. // vconnect_ws()
  130. // delete qdb
  131. {
  132. class QDB {
  133. constructor(){
  134. this.db = {}
  135. }
  136. onconnect(){
  137. qdb.get_corners()
  138. }
  139. onconnect_2(){
  140. clog("JX onconnect_2")
  141. // qdb.get_corners()
  142. // setTimeout(this.get_corners.bind(this,1000))
  143. setTimeout(this.get_corners.bind(this),100)
  144. setTimeout(this.get_corners.bind(this),2000)
  145. get_cui_html(rldi.files["cui3.html"])
  146. // setTimeout(this.get_corners.bind(this,1000))
  147. // setTimeout(this.get_corners.bind(this,))
  148. // setTimeout(qdb.get_corners.bind(this,100)
  149. // qdb.get_corners()
  150. }
  151. send(o){
  152. twsfn5.s(o)
  153. }
  154. q(action){
  155. this.send({"key":"qdb","action":action})
  156. }
  157. get_db(){
  158. this.send({"key":"qdb","action":"get_db"})
  159. }
  160. get_db2(){
  161. this.send({"key":"qdb","action":"get_db2"})
  162. }
  163. set_db(){
  164. this.send({"key":"qdb","action":"set_db"})
  165. }
  166. update(){
  167. }
  168. proc_response(data){
  169. clog("jx proc_response",data)
  170. }
  171. updated(){
  172. }
  173. set_corners(corner_name){
  174. this.send({"key":"qdb","action":"set_corners","corner_name":corner_name})
  175. }
  176. get_corners(corner_name){
  177. clog("jx get_corners abc 123",this)
  178. this.send({"key":"qdb","action":"get_corners"})
  179. }
  180. add_corner(corner_name){
  181. this.send({"key":"qdb","action":"add_corner","corner_name":corner_name})
  182. }
  183. remove_corner(corner_name){
  184. this.send({"key":"qdb","action":"remove_corner","corner_name":corner_name})
  185. }
  186. move(corner_name){
  187. this.send({"key":"qdb","action":"move","corner_name":corner_name})
  188. }
  189. time_sync(){
  190. clog("TIME SYNC")
  191. // Date.now()
  192. this.send({"key":"qdb","action":"time_sync","t0":Date.now(),"t0_u":window.performance.now()})
  193. }
  194. // server_ts
  195. }
  196. window.QDB = QDB
  197. }
  198. function replace_proto(){
  199. window.qdb.__proto__ = QDB.prototype
  200. var vchatSocket = gws.sockets["ws_n15"]
  201. var wsfn = twsfn5
  202. vchatSocket.onmessage = wsfn.onmessage
  203. vchatSocket.onclose = wsfn.onclose
  204. vchatSocket.onopen = wsfn.onopen
  205. }
  206. if (!window.qdb){
  207. window.qdb = new QDB()
  208. }
  209. window.QDB_def0 = QDB + ""
  210. if (window.QDB_def0 != window.QDB_def){
  211. if (window.QDB_def){
  212. window.QDB_def = QDB + ""
  213. replace_proto()
  214. }
  215. window.QDB_def = QDB + ""
  216. }
  217. if (window.qdb){
  218. twsfn5.client_qbd = window.qdb.proc_response
  219. }
  220. twsfn5.get_db = function(){
  221. }
  222. twsfn5.server_ts = function(data,e){
  223. var ts_u1 = window.performance.now()
  224. var t1 = Date.now()
  225. var t0 = data.req.t0
  226. var ts = data.server_time
  227. var tsx =ts * 1000
  228. var ta = (t0+t1)/2
  229. tsd = new Date(ts*1000)
  230. t0d = new Date(t0)
  231. t1d = new Date(t1)
  232. td2 = ta - tsx
  233. td = tsx - ta
  234. tarr = [[t1,"t1"],[tsx,"tsx"],[t0,"t0"],[ta,"ta"],[td,"td"],[td2,"td2"]]
  235. tobj = {t1,tsx,t0,ta,td,td2}
  236. clog("ts:",t1 - data.recv_ts,ts_u1- data.recv_ts_u1,data)
  237. // clog("ts:",{t0,ts,t1})
  238. // clog("ts3:",(t0+t1)/2 - (ts *1000),t0 - t1)
  239. t01 = t0 - t1
  240. t01_u = data.req.t0_u - ts_u1
  241. clog("ts3:",(t0+t1)/2 - tsx,t0-tsx,t1-tsx,t0 - t1)
  242. if (!qdb.td){
  243. qdb.td = 0
  244. }
  245. clog("ts4:",qdb.td - td,"~",qdb.td,td)
  246. clog("ts5:",t01,t01_u)
  247. qdb.td = td
  248. qdb.td2 = td2
  249. if (window.clock_info_draw){
  250. clock_info_draw()
  251. }
  252. }
  253. twsfn5.update_db = function(){}
  254. twsfn5.updated_db = function(){}
  255. function rld_continues(){
  256. clog("vfb jx RC")
  257. if (window.stop_flag){
  258. return
  259. }
  260. twsfn5.s({"key":"rld"})
  261. setTimeout(rld_continues,500)
  262. }
  263. // connect_helper5()
  264. // setTimeout
  265. clog("BX5")