1. Sync-Models
Synchronizing Object Graphs in Realtime
Wednesday, 6. June 2012 [W]
2. Basic idea Server
Synchronize object graphs
Push changes via long-polling
(future plan: WebSockets, SSE) Push!!!11one
Every object gets an unique id
to identify the object
Once part of the graph - push
updates to the client automatically
Client
Wednesday, 6. June 2012 [W]
3. Ingredients
Django (only some nifty bits of it)
gevent
“Simple JavaScript Inheritance” by John Resig
KnockoutJS
kodex.sync (to be released under F/OSS license)
Help wanted. Meet me
at the sprint on thursday.
Wednesday, 6. June 2012 [W]
4. Architecture
Server
Call Long polling SSE* WebSocket
Client
*Server-sent events
Wednesday, 6. June 2012 [W]
5. Server side
from kodex.sync import models
class BulletinBoard(models.RootModel):
messages = models.ReferenceListField()
class Message(models.Model):
user = models.ReferenceField()
text = models.StringField()
Wednesday, 6. June 2012 [W]
6. Server side
from kodex.sync import server
class Server(server.SyncServer):
def __init__(self):
self.root = BulletinBoard()
def post(message):
self.root.messages.append(message)
Wednesday, 6. June 2012 [W]