Channels WebSocket wrapper ========================== Channels ships with a javascript WebSocket wrapper to help you connect to your websocket and send/receive messages. First, you must include the javascript library in your template; if you're using Django's staticfiles, this is as easy as:: {% load staticfiles %} {% static "channels/js/websocketbridge.js" %} If you are using an alternative method of serving static files, the compiled source code is located at ``channels/static/channels/js/websocketbridge.js`` in a Channels installation. We compile the file for you each release; it's ready to serve as-is. The library is deliberately quite low-level and generic; it's designed to be compatible with any JavaScript code or framework, so you can build more specific integration on top of it. To process messages .. code-block:: javascript const webSocketBridge = new channels.WebSocketBridge(); webSocketBridge.connect('/ws/'); webSocketBridge.listen(function(action, stream) { console.log(action, stream); }); To send messages, use the `send` method .. code-block:: javascript webSocketBridge.send({prop1: 'value1', prop2: 'value1'}); To demultiplex specific streams .. code-block:: javascript webSocketBridge.connect(); webSocketBridge.listen('/ws/'); webSocketBridge.demultiplex('mystream', function(action, stream) { console.log(action, stream); }); webSocketBridge.demultiplex('myotherstream', function(action, stream) { console.info(action, stream); }); To send a message to a specific stream .. code-block:: javascript webSocketBridge.stream('mystream').send({prop1: 'value1', prop2: 'value1'}) The `WebSocketBridge` instance exposes the underlaying `ReconnectingWebSocket` as the `socket` property. You can use this property to add any custom behavior. For example .. code-block:: javascript webSocketBridge.socket.addEventListener('open', function() { console.log("Connected to WebSocket"); }) The library is also available as a npm module, under the name `django-channels `_