[socket] get host using frappe.urllib.get_base_url
This commit is contained in:
parent
e30ab8d2bb
commit
0984050df7
1 changed files with 73 additions and 62 deletions
|
|
@ -1,19 +1,19 @@
|
|||
frappe.socket = {
|
||||
open_tasks: {},
|
||||
open_tasks: {},
|
||||
open_docs: [],
|
||||
init: function() {
|
||||
if (frappe.boot.disable_async) {
|
||||
return;
|
||||
}
|
||||
var socketio_server = frappe.boot.dev_server? '//' + document.domain + ':3000' : '//' + document.domain + ':' + window.location.port;
|
||||
frappe.socket.socket = io.connect(socketio_server);
|
||||
frappe.socket.socket.on('msgprint', function(message) {
|
||||
frappe.msgprint(message)
|
||||
});
|
||||
|
||||
frappe.socket.setup_listeners();
|
||||
frappe.socket.setup_reconnect();
|
||||
$(document).on('form-load', function(e, frm) {
|
||||
frappe.socket.socket = io.connect(frappe.socket.get_host());
|
||||
frappe.socket.socket.on('msgprint', function(message) {
|
||||
frappe.msgprint(message);
|
||||
});
|
||||
|
||||
frappe.socket.setup_listeners();
|
||||
frappe.socket.setup_reconnect();
|
||||
$(document).on('form-load', function(e, frm) {
|
||||
if (frm.is_new()) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -27,22 +27,33 @@ frappe.socket = {
|
|||
}
|
||||
|
||||
frappe.socket.doc_subscribe(frm.doctype, frm.docname);
|
||||
});
|
||||
});
|
||||
|
||||
// $(document).on('form-unload', function(e, frm) {
|
||||
// frappe.socket.doc_unsubscribe(frm.doctype, frm.docname);
|
||||
// });
|
||||
},
|
||||
subscribe: function(task_id, opts) {
|
||||
frappe.socket.socket.emit('task_subscribe', task_id);
|
||||
frappe.socket.socket.emit('progress_subscribe', task_id);
|
||||
// $(document).on('form-unload', function(e, frm) {
|
||||
// frappe.socket.doc_unsubscribe(frm.doctype, frm.docname);
|
||||
// });
|
||||
},
|
||||
get_host: function() {
|
||||
var host = frappe.urllib.get_base_url();
|
||||
if(frappe.boot.dev_server) {
|
||||
parts = host.split(":");
|
||||
if(parts.length > 2) {
|
||||
host = parts[0] + ":" + parts[1];
|
||||
}
|
||||
host = host + ":3000";
|
||||
}
|
||||
return host;
|
||||
},
|
||||
subscribe: function(task_id, opts) {
|
||||
frappe.socket.socket.emit('task_subscribe', task_id);
|
||||
frappe.socket.socket.emit('progress_subscribe', task_id);
|
||||
|
||||
frappe.socket.open_tasks[task_id] = opts;
|
||||
},
|
||||
frappe.socket.open_tasks[task_id] = opts;
|
||||
},
|
||||
doc_subscribe: function(doctype, docname) {
|
||||
frappe.socket.socket.emit('doc_subscribe', doctype, docname);
|
||||
frappe.socket.open_docs.push({doctype: doctype, docname: docname});
|
||||
},
|
||||
},
|
||||
doc_unsubscribe: function(doctype, docname) {
|
||||
frappe.socket.socket.emit('doc_unsubscribe', doctype, docname);
|
||||
frappe.socket.open_docs = $.filter(frappe.socket.open_docs, function(d) {
|
||||
|
|
@ -52,27 +63,27 @@ frappe.socket = {
|
|||
return d;
|
||||
}
|
||||
})
|
||||
},
|
||||
setup_listeners: function() {
|
||||
frappe.socket.socket.on('task_status_change', function(data) {
|
||||
if(data.status==="Running") {
|
||||
frappe.socket.process_response(data, "running");
|
||||
} else {
|
||||
// failed or finished
|
||||
frappe.socket.process_response(data, "callback");
|
||||
// delete frappe.socket.open_tasks[data.task_id];
|
||||
}
|
||||
});
|
||||
frappe.socket.socket.on('task_progress', function(data) {
|
||||
frappe.socket.process_response(data, "progress");
|
||||
});
|
||||
},
|
||||
setup_reconnect: function() {
|
||||
// subscribe again to open_tasks
|
||||
frappe.socket.socket.on("connect", function() {
|
||||
$.each(frappe.socket.open_tasks, function(task_id, opts) {
|
||||
frappe.socket.subscribe(task_id, opts);
|
||||
});
|
||||
},
|
||||
setup_listeners: function() {
|
||||
frappe.socket.socket.on('task_status_change', function(data) {
|
||||
if(data.status==="Running") {
|
||||
frappe.socket.process_response(data, "running");
|
||||
} else {
|
||||
// failed or finished
|
||||
frappe.socket.process_response(data, "callback");
|
||||
// delete frappe.socket.open_tasks[data.task_id];
|
||||
}
|
||||
});
|
||||
frappe.socket.socket.on('task_progress', function(data) {
|
||||
frappe.socket.process_response(data, "progress");
|
||||
});
|
||||
},
|
||||
setup_reconnect: function() {
|
||||
// subscribe again to open_tasks
|
||||
frappe.socket.socket.on("connect", function() {
|
||||
$.each(frappe.socket.open_tasks, function(task_id, opts) {
|
||||
frappe.socket.subscribe(task_id, opts);
|
||||
});
|
||||
|
||||
// re-connect open docs
|
||||
$.each(frappe.socket.open_docs, function(d) {
|
||||
|
|
@ -80,31 +91,31 @@ frappe.socket = {
|
|||
frappe.socket.doc_subscribe(d.doctype, d.name);
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
process_response: function(data, method) {
|
||||
if(!data) {
|
||||
return;
|
||||
}
|
||||
},
|
||||
process_response: function(data, method) {
|
||||
if(!data) {
|
||||
return;
|
||||
}
|
||||
|
||||
// success
|
||||
if(data) {
|
||||
var opts = frappe.socket.open_tasks[data.task_id];
|
||||
if(opts[method]) opts[method](data);
|
||||
}
|
||||
// success
|
||||
if(data) {
|
||||
var opts = frappe.socket.open_tasks[data.task_id];
|
||||
if(opts[method]) opts[method](data);
|
||||
}
|
||||
|
||||
// always
|
||||
frappe.request.cleanup(opts, data);
|
||||
if(opts.always) {
|
||||
opts.always(data);
|
||||
}
|
||||
// always
|
||||
frappe.request.cleanup(opts, data);
|
||||
if(opts.always) {
|
||||
opts.always(data);
|
||||
}
|
||||
|
||||
// error
|
||||
if(data.status_code && data.status_code > 400 && opts.error) {
|
||||
opts.error(data);
|
||||
}
|
||||
}
|
||||
// error
|
||||
if(data.status_code && data.status_code > 400 && opts.error) {
|
||||
opts.error(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(frappe.socket.init);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue