Websockets issue with django
Samuel Muiruri <[email protected]> Sat, 7 Oct 2017 22:51:24 +0300
| Newsgroups | gmane.comp.python.django.user,gmane.comp.python.org.uk |
|---|---|
| Message-ID | <CAJZFZXoOPTR4zfgA174m2_-s=JoFW9AW9q-Q7T1H59NtmkbQkQ@mail.gmail.com> |
I have a websockets that's supposed to return data from a background
process running in celery, full details
Have a django project with django-channels (using redis) allows users to
start background process and should get back a live feed of this on the
page.
Here's a recording of this: https://youtu.be/eKUw5QyqRcs
Websockets disconnects with a 404.
Here's the websocket's code:
$('.test-parse').unbind().click(function() {
...
$.ajax({
url: "/start-render-part",
type: "POST",
dataType: 'json',
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && sameOrigin(settings.url)) {
// Send the token to same-origin, relative URLs only.
// Send the token only if the method warrants CSRF protection
// Using the CSRFToken value acquired earlier
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
data: JSON.stringify(data),
success: function(response){
if (response['status'] == 'ok') {
if (response['unique-id']) {
unique_processing_id = response['unique-id'];
}
if (response['task_id']) {
task_id = response['task_id'];
}
var add_to_group_msg = JSON.stringify({
'unique_processing_id': unique_processing_id,
'task_id': task_id,
'command': 'add_to_group',
});
var socket = new
WebSocket("ws://{HOST}/render-part/".replace('{HOST}',
window.location.host));
socket.onopen = function() {
console.log('opened');
var add_to_group_msg = JSON.stringify({
'unique_processing_id': unique_processing_id,
'task_id': task_id,
'command': 'add_to_group',
});
socket.send(add_to_group_msg);
var get_status_msg = JSON.stringify({
'task_id': task_id,
'unique_processing_id': unique_processing_id,
'command': 'check_status',
});
socket.send(get_status_msg);
};
socket.onmessage = function(event) {
console.log("onmessage. Data: " + event.data);
var data = JSON.parse(event.data);
if (data.state == 'PROGRESS') {
console.log(data.status);
update_progress(data.current);
}
else if (data.state == 'FINISHED') {
var remove_from_group_msg = JSON.stringify({
'unique_processing_id': unique_processing_id,
'command': 'remove_from_group',
});
socket.send(remove_from_group_msg);
unique_processing_id = '';
task_id = '';
}
};
socket.onclose = function(event) {
if (event.wasClean) {
alert('Connection closed');
} else {
console.log('Connection terminated');
}
console.log('Code: ' + event.code + ' reason: ' +
event.reason);
console.log(event);
};
socket.onerror = function(error) {
console.log("Error " + error.message);
};
// Call onopen directly if socket is already open
if (socket.readyState == WebSocket.OPEN) {
socket.onopen();
}
//End Sockets Code
} //End for if rensponse['status'] == 'ok'
},
error: function(xhr){
},
});
/* End Ajax Call */ });
possibly note worthy on local version the websockets get's to onopen which
I confirm thanks to the console output.
--
Best Regards,
Samuel Muiruri.
Web Designer | +254 738 940064
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAJZFZXoOPTR4zfgA174m2_-s%3DJoFW9AW9q-Q7T1H59NtmkbQkQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.