Skip to content
Utilities to manage realtime events in Cozy Applications
CoffeeScript
Find file
Pull request Compare This branch is 13 commits ahead of aenario:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
src
tests
.gitignore
.npmignore
Cakefile
README.md
coffeelint.json
package.json

README.md

Realtime adapter

Helper library for interaction with cozy-data-system data changes notifications

Server-Side : Axon -> Socket.io

Usage :

americano.start(options, function(app, server){
    app.server = server

    RealtimeAdapter = require('cozy-realtime-adapter')

    // notification events should be proxyed to client
    realtime = RealtimeAdapter(app, ['notification.*']);

    // custom callback for alarm events
    realtime.on('alarm.*', function(event, msg){
        // event = 'alarm.update' or 'alarm.create' or 'alarm.delete'
        // msg = id of the updated alarm
    });
});

Client-Side : Socket.io -> Backbone Models manipulations

Basic Usage :

<script src="cozy-realtime-adapter.js"></script>
class SocketListener extends CozySocketListener

    models:
        'notification': Notification

    events: [
        'notification.create', 'notification.update', 'notification.delete'
    ]

    onRemoteCreate: (model) ->
        @collection.add model if # should model be in @collection ?

    onRemoteDelete: (model) ->
        @collection.remove model

sl = new SocketListener()

sl.watch myNotificationCollection

For more complex usages, refer to the code of cozy applications

What is Cozy?

Cozy Logo

Cozy is a platform that brings all your web services in the same private space. With it, your web apps and your devices can share data easily, providing you with a new experience. You can install Cozy on your own hardware where no one profiles you. You install only the applications you want. You can build your own one too.

Community

You can reach the Cozy community via various support:

Something went wrong with that request. Please try again.