pip install django-socketio
python
INSTALLED_APPS = [
...
'socketio',
...
]
python
# socketio settings
SOCKETIO_HOST = "localhost"
SOCKETIO_PORT = 8000
python
from django.http import HttpResponse
from socketio.namespace import BaseNamespace
def my_namespace(request):
class MyNamespace(BaseNamespace):
def on_connect(self):
self.broadcast_event('message', {'data': 'Client connected'})
def on_message(self, msg):
self.broadcast_event('message', {'data': msg})
def on_disconnect(self):
print('Client disconnected')
return HttpResponse(MyNamespace)
python
from django.conf.urls import url
from your_app.views import my_namespace
urlpatterns = [
...
url(r'^socket\.io/my_namespace/$', my_namespace, name='my_namespace'),
...
]
python manage.py runserver_socketio
script
var socket = io.connect('http://localhost:8000/my_namespace/');
socket.on('connect', function() {
console.log('Connected');
socket.emit('message', 'Hello, server!');
});
socket.on('message', function(data) {
console.log('Received message:', data);
});
socket.on('disconnect', function() {
console.log('Disconnected');
});