[socket] get host using frappe.urllib.get_base_url

This commit is contained in:
Rushabh Mehta 2015-08-21 14:10:57 +05:30
parent e30ab8d2bb
commit 0984050df7

View file

@ -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);