Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

rldws.js 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. // url
  2. // we are doing to need a new dev glob??
  3. // function rld_ws_init(argument) {
  4. function function_name(argument) {
  5. // body...
  6. clog("rldws: function_name onmessage",this,arguments)
  7. window.last_fn_targ = [this,arguments]
  8. }
  9. bfn = function_name.bind({"a":1})
  10. bfn2 = bfn.bind({b:2},{c:3},3,4)
  11. bfn3 = bfn2.bind({b2:2},{c2:3},{d:4},"....")
  12. bfn_e = function_name.bind()
  13. bfn2_e = bfn_e.bind()
  14. bfn3_e = bfn2_e.bind({b2:2},{c2:3},{d:4},"....")
  15. dflt_fns = window.dflt_fns || {
  16. onclose(event){
  17. clog("rldws: onclose WE SHOULD DO SOMTHING!!!!")
  18. },
  19. onmessage(event){
  20. clog("rldws: onmessage",event)
  21. },
  22. onerror(event){
  23. clog("rldws: WS ERR:",[this,arguments])
  24. },
  25. onopen(event){
  26. clog("rldws: onopen")
  27. },
  28. }
  29. // socket_event_handlers = window.socket_event_handlers || {
  30. socket_event_handlers={
  31. onclose(self,event){
  32. clog("rldws: onclose WE SHOULD DO SOMTHING!!!!",this,arguments)
  33. },
  34. onmessage(self,event){
  35. var data = JSON.parse(event.data)
  36. // we might support jstp in the future (I haven't defined the protocol yet)
  37. if (data.CLIENT_KEY =="RLD"){
  38. // clog(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.")
  39. self.rld_check_flag = 1
  40. clog("WS RLD EVENT..")
  41. // for compatibility
  42. rldi.rld_check()
  43. }
  44. clog("rldws: onmessage",event,data,[this,arguments])
  45. },
  46. onerror(self,event){
  47. clog("rldws: WS ERR:",[this,arguments])
  48. },
  49. onopen(self,event){
  50. clog("rldws: onopen")
  51. },
  52. }
  53. function ws_evh_binder(socket,fns,bind_arr){
  54. var k,v
  55. for ([k,v] of Object.entries(fns)){
  56. if (typeof(v) == "function"){
  57. socket[k] = v.bind(...bind_arr)
  58. }
  59. clog(k,typeof(v),v)
  60. }
  61. }
  62. {
  63. class jRld{
  64. constructor (){
  65. this.version = "jrld 0.0.0"
  66. }
  67. rld_check_flag = "?"
  68. z(){
  69. clog("z",this,this == window.t)
  70. }
  71. // this is for injecting into the old rldjs
  72. rldws_status(old_rld_inst){
  73. // clog(this,old_rld_inst,this)
  74. // let ovr = this.socket.readyState == this.socket.OPEN && !(old_rld_inst.stop_ws_override) && !this.stop_ws_override
  75. // clog([this.socket.readyState == this.socket.OPEN , !(old_rld_inst.stop_ws_override) , !this.stop_ws_override,!this.rld_check_flag])
  76. if (this.rld_check_flag){
  77. setTimeout(this.rldws_status_h2.bind(jrldi,rldi),1)
  78. }
  79. return {override:this.socket.readyState == this.socket.OPEN && !(old_rld_inst.stop_ws_override) && !this.stop_ws_override && !this.rld_check_flag}
  80. // clog(this)
  81. }
  82. rldws_status_h2(old_rld_inst){
  83. // clog("rldws_status_h2",this,this.rld_check_flag,arguments)
  84. this.rld_check_flag = 0
  85. }
  86. }
  87. clog("hi")
  88. window.jRld = jRld
  89. window.orig_jRld = window.orig_jRld || jRld
  90. }
  91. function resconn_jrldi(){
  92. if (jrldi.socket)
  93. jrldi.socket.close()
  94. window.jrldi = new jRld()
  95. create_rld_socket(jrldi)
  96. }
  97. // jrldi=0
  98. if (!window.jrldi){
  99. jrldi = new jRld()
  100. }
  101. function create_rld_socket(jrldi) {
  102. // host will change in future
  103. // for now we will append to rldi
  104. // clog(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
  105. const room_name = "__RLD_WS__"
  106. var o = {
  107. methods:socket_event_handlers,
  108. url:'wss://' + window.location.hostname +`/djc_srv/ws/chat/${room_name}`,
  109. }
  110. var socket = new WebSocket(o.url)
  111. jrldi.socket = socket
  112. // Object.assign(socket,o.methods)
  113. ws_evh_binder(socket,socket_event_handlers,[socket,jrldi])
  114. // only if we're using rldjs5
  115. rldjs5_helper(jrldi)
  116. // rldi.socket =
  117. }
  118. // ws_evh_binder(jrldi.socket,jrldi.socket_event_handlers,[socket,jrldi])
  119. // jrldi.socket.onmessage = jRld.onmessage
  120. // jrldi.socket.onmessage = jRld.socket_event_handlers.onmessage
  121. // jrldi.socket.onmessage = jrldi.socket_event_handlers.onmessage
  122. // jrldi.socket.onmessage = jrldi.onmessage
  123. function rldjs5_helper(jrldi){
  124. if (!("stop_ws_override" in rldi)){
  125. rldi.stop_ws_override = 0
  126. // clog("jdev a")
  127. } else {
  128. // clog("jdev b")
  129. }
  130. nRld.prototype.rldws_status = jrldi.rldws_status.bind(jrldi,rldi)
  131. // rkdjs is un changed so we
  132. }
  133. // to update socket event handlers
  134. // Object.assign(socket,dflt_fns)
  135. /*
  136. nRld.prototype.rldws_status = function rldws_status(){
  137. clog(this,arguments)
  138. return {override:this.try_ws_override}
  139. // clog(this)
  140. }
  141. */
  142. clog("rld_ws_init")
  143. // clog("::::;")
  144. // nRld.prototype.fn = function name(params) {clog("HI",arguments,this)}
  145. // nRld.fn = function name(params) {clog("HI")}
  146. // var socket = new WebSocket(o.url)
  147. resconn_jrldi()