123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
-
- // clog("/////////")
-
- // msto_sc_proxy
- // permissions_def
- // connection_info_handler
-
- // /*
- function get_local_sto_id(){
- return glob_u.data.jsync_local_id
- }
- function get_session_sto_id(){
- return glob_u.data.jsync_session_id
- }
-
- function get_ws_channel_name(){
- return glob_u.data.channel_name
-
- }
-
- function gen_djc_srv_id(){
- // I don't know how often this will generate duplicates
-
- var djc_srv_id = localStorage.djc_srv_id
- var djc_srv_id_vers = localStorage.djc_srv_id_vers
- const current_id_vers = 0.0
- if (Number(djc_srv_id_vers) < current_id_vers || !(djc_srv_id)){
- clog("????")
- localStorage.djc_srv_id = ((Math.random()+"").replace("0.","") - 0).toString(16)
- localStorage.djc_srv_id_vers = current_id_vers
- }
- glob_u.data.djc_srv_id = localStorage.djc_srv_id
- clog("djc_srv_id:",{version:localStorage.djc_srv_id_vers,id:localStorage.djc_srv_id})
-
- }
-
-
-
- function init_msto_user_data(o,scope,info){
- var ws_channel_name = get_ws_channel_name()
-
-
- var local_sto_id = get_local_sto_id()
- // clog("init_msto_user_data???",{local_sto_id,ws_channel_name,o,scope,info})
- if (!glob_u.ws.sockets.ws1.params.include_ws_channel_data){return}
- msto.ws_channels[ws_channel_name]=msto.ws_channels[ws_channel_name] || {id:local_sto_id}
-
-
- if (!glob_u.ws.sockets.ws1.params.include_participants_data){return}
- msto.participants[local_sto_id]=msto.participants[local_sto_id] || {}
- // clog("init_msto_user_dataw???")
-
-
-
-
- }
-
- glob_u.cb.ws.reg_cb(init_msto_user_data,"WS_MSTO_INITED","init_msto_user_data")
-
-
- window.permissions_def = window.permissions_def || {
- participants:{
- m:["participants"],
- fn(set_scope,match){
-
- if (match.fp[1] == "rejx")
- throw "permission err"
- return
- },
- }
- }
- // */
- // jsync_local_id
- // jsync_local_vers
- // jsync_session_id
- // jsync_session_vers
- // jsync_id
- // jsync_vers
-
-
-
- window.permissions_def = {
- participants:{
- m:["participants"],
- fn(set_scope,match){
- if (match.fp[1] != get_local_sto_id()){
- console.error("permission err:participants",set_scope,match)
- // console.trace("permission err:participants")
- throw "permission err"
- }
- return
- },
- },
- ws_channels:{
- m:["ws_channels"],
-
- fn(set_scope,match){
- if (match.fp[1] != get_ws_channel_name()){
- console.error("permission err:ws_channels",set_scope,match)
- throw "permission err"
- }
- }
- },
- }
-
-
-
- window.permissions_def0 = {
- /*
- ws_channels:{
- m:["ws_channels"],
-
- fn(set_scope,match){
- if (match.fp[1] != window.glob_u.data.channel_name){
- console.error("permission err:ws_channels",set_scope,match)
- throw "permission err"
- }
- }
- },
- */
-
- user_channels:{
- m:["user_channels"],
-
- fn(set_scope,match){
- if (match.fp[1] != get_ws_channel_name()){
- console.error("permission err:user_channels",set_scope,match)
- throw "permission err"
- }
- }
- },
-
-
- user_data_sessions:{
- m:["user_data_sessions"],
- fn(set_scope,match){
- if (match.fp[1] != get_session_sto_id()){
- console.error("permission err:user_data_sessions",set_scope,match)
- // console.trace("permission err:participants")
- throw "permission err"
- }
- return
- },
- },
- user_data_local:{
- m:["user_data_local"],
- fn(set_scope,match){
- if (match.fp[1] != get_local_sto_id()){
- console.error("permission err:user_data_local",set_scope,match)
- // console.trace("permission err:participants")
- throw "permission err"
- }
- return
- },
- },
- /*
- participants:{
- m:["participants"],
- fn(set_scope,match){
- if (match.fp[1] != window.glob_u.data.djc_srv_id){
- console.error("permission err:participants",set_scope,match)
- // console.trace("permission err:participants")
- throw "permission err"
- }
- return
- },
- }
- */
-
- }
-
-
-
-
-
-
-
- function ensure_jsync_id_is_set(storage_,base_name){
- var storage = storage_
- var id_name = base_name + "_id"
- var vers_name = base_name + "_vers"
- var djc_srv_id = storage[id_name]
- var djc_srv_id_vers = storage[vers_name]
- const current_id_vers = 0.0
- if (Number(djc_srv_id_vers) < current_id_vers || !(djc_srv_id)){
- storage[id_name] = ((Math.random()+"").replace("0.","") - 0).toString(16)
- storage[vers_name] = current_id_vers
- }
- glob_u.data[id_name] = storage[id_name]
- // clog("djc_srv_id:",{version:localStorage.djc_srv_id_vers,id:localStorage.djc_srv_id})
-
- }
- ensure_jsync_id_is_set(localStorage,"jsync_local")
- ensure_jsync_id_is_set(sessionStorage,"jsync_session")
-
- // function user_disconnected_compatibility_handler(o,scope,info){
-
-
-
- // TODO:Fix bug caused by a user disconnecting before the connection is properly established
- function connection_info_handler(o,scope,info){
- if (o.data.sto_event_type=="connection_info"){
- // clog("connection_info_handler:",o,scope,info)
- glob_u.data.group_name = o.data.group_name
- glob_u.data.channel_name = o.data.channel_name
- clog("jsyncdb connected","room name:",glob_u.data.group_name)
- } else if (o.data.sto_event_type=="user_disconnected"){
- var last_conn =1
- var k,v
- var ws_conn_data = jc(msto.ws_channels[o.data.channel_name])
- delete msto.ws_channels[o.data.channel_name]
- for ([k,v] of Object.entries(msto.ws_channels)){
- if (v.id == ws_conn_data.id){
- last_conn = 0
- }
- }
- if (last_conn){
- // clog("DELlast_conn" ,ws_conn_data.id)
- delete msto.participants[ws_conn_data.id]
- }
- clog("user_disconnected:",o.data.channel_name)
- return
- if (msto.user_channels){
- delete msto.user_channels[o.data.channel_name]
- }
-
-
-
- if (msto.user_channels){
- for ([k,v] of Object.entries(msto.user_channels)){
- if (v.id == ws_conn_data.id){
- last_conn = 0
- }
- }
- }
- if (last_conn){
- clog("DELlast_conn" ,ws_conn_data.id)
- delete msto.user_data_local[ws_conn_data.id]
- }
-
- }
- }
-
- glob_u.cb.ws.reg_cb(connection_info_handler,"WS_MESSAGE:ws_sto","connection_info_handler")
-
-
-
- function ds_test3(){
- glob_u.cb.ws.reg_cb(ord_init_once,"WS_OPEN:","ord_init_once")
- ws_reload()
- }
-
- glob_u.fns.get_local_sto_id = get_local_sto_id
- glob_u.fns.get_ws_channel_name = get_ws_channel_name
- glob_u.fns.get_session_sto_id = get_session_sto_id
-
- // console.log("??...")
-
-
- // clog("???")
- //
|