Browser support

#1

Autobahn now supports (= tested) the following browsers:

    native support:
       * Google Chrome 14+
       * Mozilla Firefox 7+
       * Microsoft Internet Explorer 10+

    support via Adobe Flash 10+ (see below):
       * Microsoft Internet Explorer 8, 9
       * Safari 5

For details on how to use Autobahn with non-native WS support,
please see the updated project README.

\Tobias

0 Likes

#2

I'm guessing this means that you've dropped support for draft-76?

– Micheil

···

On 11/02/2012, at 4:16 PM, Tobias Oberstein wrote:

Autobahn now supports (= tested) the following browsers:

  native support:
     * Google Chrome 14+
     * Mozilla Firefox 7+
     * Microsoft Internet Explorer 10+

  support via Adobe Flash 10+ (see below):
     * Microsoft Internet Explorer 8, 9
     * Safari 5

For details on how to use Autobahn with non-native WS support,
please see the updated project README.

\Tobias

0 Likes

#3

well:

* there wasnt support for Hixie .. so nothing dropped

* there is an issue https://github.com/oberstet/Autobahn/issues/59 .. to implement Hixie

* there is a fork https://github.com/Metaswitch/AutobahnHackedForWebSocket00 which implements Hixie (as a crude hack)

using either Flash bridge or Google Chrome Frame, essentially most
desktop browsers are now supported:

IE 6+, FF 6+, Chrome 14+, Safari 5+

and also: FF Mobile, Chrome for Android

···

==

the only thing not supported is iOS default browser .. which is Hixie

Android default browser is WebKit 4 and has no WS support whatsoever

==

whether I find time/motivation to still fix #59 (implement Hixie) "just"
to support iOS .. I'm not sure.

my focus with mobiles is now on supporting native apps:

Autobahn for Android works on Android 2.2+

what we wanna have is Autobahn for iOS (ObjC) and for Windows Phone (C#) ..

==

Thoughts?

\Tobias

Am 12.02.2012 16:49, schrieb Micheil Smith:

I'm guessing this means that you've dropped support for draft-76?

� Micheil

On 11/02/2012, at 4:16 PM, Tobias Oberstein wrote:

Autobahn now supports (= tested) the following browsers:

   native support:
      * Google Chrome 14+
      * Mozilla Firefox 7+
      * Microsoft Internet Explorer 10+

   support via Adobe Flash 10+ (see below):
      * Microsoft Internet Explorer 8, 9
      * Safari 5

For details on how to use Autobahn with non-native WS support,
please see the updated project README.

\Tobias

0 Likes

#4

I would say that unfortunately there's still a large usage of draft76 / hixie in the wild to
drop support. I think we can probably safely drop draft-75.

As for implementing draft-76/hixie on top of Autobahn, I'm not so sure. I think perhaps
just allowing people to register additional handlers for upgrade may be the better route,
such that by default you have hybi drafts supported, but then allow people to optionally
plug in an extra draft76/hixie handler if they want. This would mean that you'd keep
autobahn light weight, and wouldn't need to focus time on supporting outdated drafts.

As for iOS, we do need really good WebSocket libraries, but that's not likely to happen
until someone has the motivation to write them.

– Micheil

···

On 12/02/2012, at 4:10 PM, Tobias Oberstein wrote:

well:

* there wasnt support for Hixie .. so nothing dropped

* there is an issue https://github.com/oberstet/Autobahn/issues/59 .. to implement Hixie

* there is a fork https://github.com/Metaswitch/AutobahnHackedForWebSocket00 which implements Hixie (as a crude hack)

using either Flash bridge or Google Chrome Frame, essentially most
desktop browsers are now supported:

IE 6+, FF 6+, Chrome 14+, Safari 5+

and also: FF Mobile, Chrome for Android

==

the only thing not supported is iOS default browser .. which is Hixie

Android default browser is WebKit 4 and has no WS support whatsoever

==

whether I find time/motivation to still fix #59 (implement Hixie) "just"
to support iOS .. I'm not sure.

my focus with mobiles is now on supporting native apps:

Autobahn for Android works on Android 2.2+

what we wanna have is Autobahn for iOS (ObjC) and for Windows Phone (C#) ..

==

Thoughts?

\Tobias

Am 12.02.2012 16:49, schrieb Micheil Smith:

I'm guessing this means that you've dropped support for draft-76?

– Micheil

On 11/02/2012, at 4:16 PM, Tobias Oberstein wrote:

Autobahn now supports (= tested) the following browsers:

  native support:
     * Google Chrome 14+
     * Mozilla Firefox 7+
     * Microsoft Internet Explorer 10+

  support via Adobe Flash 10+ (see below):
     * Microsoft Internet Explorer 8, 9
     * Safari 5

For details on how to use Autobahn with non-native WS support,
please see the updated project README.

\Tobias

0 Likes

#5

I would say that unfortunately there's still a large usage of draft76 / hixie in the wild to
drop support. I think we can probably safely drop draft-75.

As for implementing draft-76/hixie on top of Autobahn, I'm not so sure. I think perhaps
just allowing people to register additional handlers for upgrade may be the better route,
such that by default you have hybi drafts supported, but then allow people to optionally
plug in an extra draft76/hixie handler if they want. This would mean that you'd keep
autobahn light weight, and wouldn't need to focus time on supporting outdated drafts.

The "pluggable handler" idea is worth considering .. I've archived your thgouhts

https://github.com/oberstet/Autobahn/issues/59#issuecomment-3929536

to get back at it .. probably ..

As for iOS, we do need really good WebSocket libraries, but that's not likely to happen
until someone has the motivation to write them.

there is

https://github.com/square/SocketRocket

which supports RFC6455, conforms very well (tested using AB testsuite) and is very high performance (tested by Peter Thorson using C++/ASIO
variants of the 9.x perf. cases built on his WebSocket++ framework).

I'd love to implement WAMP on top of it .. however I'm currently
fully overloaded, have zero iOS/ObjC experience and

"""
2) Rgd. WAMP: on Android, we're using a high-perf. JSON-Object mapper,

http://jackson.codehaus.org/

Using that it is possible to issue a RPC and get i.e. a List<Person> as a result, where Person is a user-defined native Java class.

Auto-mapping .. very convenient. The same works for PubSub i.e.

https://github.com/oberstet/AutobahnAndroid/blob/master/Demo/SimplePubSub/src/de/tavendo/autobahn/simplepubsub/SimplePubSubActivity.java#L133

Is there something like Jackson for iOS?
"""

The author of SocketRocket has expressed some interest in WAMP,
but sadly - my fault - I still had no time for proper doc of WAMP
or even writing a RFC draft taking it to Hybi list for discussion ..

\Tobias

···

� Micheil

On 12/02/2012, at 4:10 PM, Tobias Oberstein wrote:

well:

* there wasnt support for Hixie .. so nothing dropped

* there is an issue https://github.com/oberstet/Autobahn/issues/59 .. to implement Hixie

* there is a fork https://github.com/Metaswitch/AutobahnHackedForWebSocket00 which implements Hixie (as a crude hack)

using either Flash bridge or Google Chrome Frame, essentially most
desktop browsers are now supported:

IE 6+, FF 6+, Chrome 14+, Safari 5+

and also: FF Mobile, Chrome for Android

==

the only thing not supported is iOS default browser .. which is Hixie

Android default browser is WebKit 4 and has no WS support whatsoever

==

whether I find time/motivation to still fix #59 (implement Hixie) "just"
to support iOS .. I'm not sure.

my focus with mobiles is now on supporting native apps:

Autobahn for Android works on Android 2.2+

what we wanna have is Autobahn for iOS (ObjC) and for Windows Phone (C#) ..

==

Thoughts?

\Tobias

Am 12.02.2012 16:49, schrieb Micheil Smith:

I'm guessing this means that you've dropped support for draft-76?

� Micheil

On 11/02/2012, at 4:16 PM, Tobias Oberstein wrote:

Autobahn now supports (= tested) the following browsers:

   native support:
      * Google Chrome 14+
      * Mozilla Firefox 7+
      * Microsoft Internet Explorer 10+

   support via Adobe Flash 10+ (see below):
      * Microsoft Internet Explorer 8, 9
      * Safari 5

For details on how to use Autobahn with non-native WS support,
please see the updated project README.

\Tobias

0 Likes

#6

As for implementing draft-76/hixie on top of Autobahn, I'm not so sure. I think perhaps
just allowing people to register additional handlers for upgrade may be the better route,
such that by default you have hybi drafts supported, but then allow people to optionally
plug in an extra draft76/hixie handler if they want. This would mean that you'd keep
autobahn light weight, and wouldn't need to focus time on supporting outdated drafts.

The "pluggable handler" idea is worth considering .. I've archived your thoughts

https://github.com/oberstet/Autobahn/issues/59#issuecomment-3929536

Okay, cool.

As for iOS, we do need really good WebSocket libraries, but that's not likely to happen
until someone has the motivation to write them.

there is

https://github.com/square/SocketRocket

which supports RFC6455, conforms very well (tested using AB testsuite) and is very high
performance (tested by Peter Thorson using C++/ASIO variants of the 9.x perf. cases built
on his WebSocket++ framework).

Ah, cool, this is a new one to me, there was another one, but it was only on hixie draft-75 or
-76.

I'd love to implement WAMP on top of it .. however I'm currently
fully overloaded, have zero iOS/ObjC experience and

hmm.. WAMP?

Is there something like Jackson for iOS?

I'm not sure. I don't do either objective-c or Java.

The author of SocketRocket has expressed some interest in WAMP,
but sadly - my fault - I still had no time for proper doc of WAMP
or even writing a RFC draft taking it to Hybi list for discussion ..

If you need a co-author for an RFC, and can communicate to me clearly what WAMP is,
then I'd be happy to help you co-author. I'm actually looking for a co-author for a
websocket subprotocol RFC: JSON-RPC 2.0 over WebSocket.

– Micheil

···

On 12/02/2012, at 6:04 PM, Tobias Oberstein wrote:

0 Likes

#7

I'd love to implement WAMP on top of it .. however I'm currently
fully overloaded, have zero iOS/ObjC experience and

hmm.. WAMP?

WAMP = WebSocket Application Messaging Protocol

WAMP is a WebSockets subprotocol that uses JSON as message serialization format and provides two application messaging
patterns:

* Request and Response and
* Publish and Subscribe

We have working, interoperable code:

clients: JS, Java/Android, Python/Twisted
server: Python/Twisted

At least one guy has implemented WAMP on PHP, and Len (ServerFramework) has indicated some interest also. Mike (SocketRocket) also.

I started some docs at

http://www.tavendo.de/autobahn/protocol.html

which is quite incomplete, but could give you a first impression

The actual implementations are

https://github.com/oberstet/Autobahn/blob/master/lib/python/autobahn/wamp.py

https://github.com/oberstet/Autobahn/blob/master/lib/javascript/autobahn.js

and

https://github.com/oberstet/AutobahnAndroid

Those repos also contain demos for RPC and PubSub for JS, Py and Android.

The RPC part of WAMP is feature complete and pretty stable.
The PubSub part is still evolving somewhat ..

Is there something like Jackson for iOS?

I'm not sure. I don't do either objective-c or Java.

The author of SocketRocket has expressed some interest in WAMP,
but sadly - my fault - I still had no time for proper doc of WAMP
or even writing a RFC draft taking it to Hybi list for discussion ..

If you need a co-author for an RFC, and can communicate to me clearly what WAMP is,
then I'd be happy to help you co-author. I'm actually looking for a co-author for a
websocket subprotocol RFC: JSON-RPC 2.0 over WebSocket

I'd say the RPC part of WAMP should essentially provide the same functionality as JSON-RPC .. the latter lacking any PubSub which WAMP has.

In general I'd be very interested in cooperating on a RFC draft!
It's much better to have 2 guys writing something like this, not only
because of time, but also improved quality etc

Probably you could have a first look into WAMP and check if you like
what you see. For if you disagree on its general design or other
fundaments, it may be problematic .. not that I'm resistent to sane
suggestions/changes, but we already have quite some investment in
that stuff as it works today and likely can't start from scratch ..

Let me hear what you think .. I'd be happy if we could collaborate!

\Tobias

.

···

� Micheil

0 Likes