[jdev] High level XMPP Javascript client

Sergey Dobrov binary at jrudevels.org
Wed Apr 25 16:36:03 UTC 2012


On 04/25/2012 11:11 PM, Theo Cushion wrote:
> That looks interesting.
> 
> Have you got a demo of habahaba anywhere?

Sure: http://habahaba.im/

Actually, this is just a Jappix fork with some extra features. You can
take a small description of the project here: http://jawiki.ru/Eng:HabaHaba

For the moment, habahaba doesn't actually use jslix, it mostly inherits
jappix code. (except of server side part which was rewritten in python
and uses twilix).

I started to write jslix because I want to implement jingle in habahaba
using webrtc protocol (for now there's only voice support using Flash
and without jslix and written by another developer).

Unfortunately, I realized that existent libraries are too bad to write
fast and flexible things (moreover, they are written in bad js, both
jsjac and strophe, so my aim is to get rid from them but for now jslix
needs them as a transport layer) so I decided to write the same thing
I've already done for python and twilix: some simplified XML schema in
declarative style which will be used to parse, build and validate XML. I
have also dispatcher which can handle queries and catch exceptions and
represent XMPP errors as language level exceptions. It most interesting
in python because it has a generators support, so the work with XMPP
became too easy just as work with synchronous protocols:

query = SomeQuery()
iq = Iq(to='somenode at someserver', type_='get')
iq.link(query)
try:
    result = yield dispatcher.send(iq)
except FeatureNotImplementedException:
    alert('Client does not support this feature')
else:
    print result.some_result

twilix has some problems which need some refactoring because but it's
almost useful, I have several services written and working on that.


> 
> Theo
> 
> On 25 Apr 2012, at 16:21, Sergey Dobrov wrote:
> 
>> Hello, I am trying to implement similar thing:
>>
>> http://trac.jrudevels.org/habahaba/browser/habahaba/media/js/jslix?rev=1120d5de1fb187b4c687b385ee92ac95826f0c71
>>
>> it's in a beginning state and have no good documentation but we are
>> working on it.
>>
>> And I have the same thing for python on top of twisted:
>> https://github.com/xamvz/twilix
>>
>> On 04/25/2012 07:59 PM, Theo Cushion wrote:
>>> Hello Everyone,
>>>
>>> I've been working on a library called "Frabjous" for a little while now. It doesn't aim to replace clients like Strophe.js or JsJac, but instead be an ORM for the XMPP protocol. This is to enable better code reuse between projects and reduce the barrier to entry for implementing an XMPP based messaging solution in the browser.
>>>
>>> The code is up on github:
>>> 	http://github.com/theozaurus/frabjous
>>>
>>> Along with a demo which shows how the Ember key value bindings can build a UI with very little code:
>>> 	http://github.com/theozaurus/frabjous_demo 
>>> 	http://theozaurus.github.com/frabjous_demo
>>>
>>> The project is tested using Jasmine to make it maintainable, and I'm splitting it up as best I can on a per XEP basis so that code can be added or removed with a minimum of fuss. I've also ported "equivalent-xml" to Javascript which may be of use to anyone dealing with testing, XML and Javascript. It can be found here:
>>> 	http://github.com/theozaurus/equivalent-xml-js
>>>
>>> So far Frabjous can:
>>> - Deal with basic message types (message, presence) and turn those into contacts with threads etc
>>> - Generate and send stanzas with callback support (currently just a message method on a Contact)
>>> - Link errors received back to the original object
>>>
>>> At the moment it doesn't actually hook int Strophe or JsJac, but to add this in will be simple. The focus has to been to demonstrate the concepts before the project is fleshed out.
>>>
>>> I'd be really interested to hear any thoughts, criticism and if anyone else is attempting something similar or would like to get involved.
>>>
>>> Cheers
>>>
>>> Theo
>>> _______________________________________________
>>> JDev mailing list
>>> Info: http://mail.jabber.org/mailman/listinfo/jdev
>>> Unsubscribe: JDev-unsubscribe at jabber.org
>>> _______________________________________________
>>>
>>
>>
>> -- 
>> With best regards,
>> Sergey Dobrov,
>> XMPP Developer and JRuDevels.org founder.
>>
>> _______________________________________________
>> JDev mailing list
>> Info: http://mail.jabber.org/mailman/listinfo/jdev
>> Unsubscribe: JDev-unsubscribe at jabber.org
>> _______________________________________________
> 
> _______________________________________________
> JDev mailing list
> Info: http://mail.jabber.org/mailman/listinfo/jdev
> Unsubscribe: JDev-unsubscribe at jabber.org
> _______________________________________________
> 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



More information about the JDev mailing list