Oops, Gmail 'reply' opened a new subject. Anyway, reposting:
I see that you're looking for fallbacks. I wrote a client that's
websocket only -- seems you did too. I'm interested in a library
grade client as well, fallbacks or otherwise. I'm posting a rough
draft here of my client for the interested.
The client API is reworked towards Kivy and it's still very very rough
and it ONLY does websockets.
http://pastebin.com/WcrcPZKE
Depends:
Autobahn
Twisted (Zope)
Kivy
The reason for the Autobahn dependency is that Twisted Websockets
aren't mainline:
http://twistedmatrix.com/trac/browser/branches/websocket-4173-2
IIRC, they're quarantined until the spec is settled, so I opted for
Autobahn instead. Probably switching to the Twisted version would
look almost the same though.
The client API is different. I'm trying something like:
socket.event_name.msg -- a property that is observably changed (kivy
has observable property 'events')
socket.event_name.emit(object) -- a method for emitting an event using
a JSON-able object
socket.event_name.emit(object, callback)
socket.status -- an observable property for "disconnect","connect"
etc.
Anyway, I'm posting a pastebin just for research purposes, I don't
expect it to be much general use yet, but it might be interesting to
other people doing client development.
I plan to eventually release a quality version with the traditional
API and a separated Kivy decoration.
NOTE: after yesterday's 1.1.0 release of Kivy, this doesn't work
anymore owing to this issue:
https://github.com/kivy/kivy/issues/372
Good luck,
-db-