The latest AutobahnPython now supports Hixie-76:
- server, and also client
- server supports mixed Hybi and Hixie clients
- message and streaming API
- correct, and fully incremental UTF-8 payload validation
- proper closing handshake (HS)
- proper timeouts on opening HS, closing HS, server conn. drop
- works with WAMP (tested with mixed AutobahnJS clients: Hybi+Hixie)
Practically, this means support for: Safari iOS and OSX.
Tested with a years old iPod Touch (iOS 4.2.1) and (old) OSX Safari (5.0.6).
For security reasons, the support is disabled by default!
To enable for servers:
factory = WebSocketServerFactory("ws://localhost:9000")
factory.protocol = YourAwesomeProtocol
factory.setProtocolOptions(allowHixie76 = True)
listenWS(factory)
To speak Hixie-76 from clients:
factory = WebSocketClientFactory("ws://localhost:9000")
factory.protocol = YourAwesomeProtocol
factory.setProtocolOptions(allowHixie76 = True, version = 0)
connectWS(factory)
Note: Really, please don't use the client. It's only there because I
hate asymmetry, to test/develop the server and probably to write up
some test cases for the test suite.
Cheers,
\Tobias
I've done extensive testing the day over. I have none of the issues you see.
You may want to pull the latest commits from the repo which make the
echo/broadcast demos more verbose/convenient. Those commit didnt touch
any library code.
Browser/platforms tested with echo/broadcast demos:
Opera Mobile: Nokia N8, Android Galaxy ACE, Android Galaxy Tab 1
Opera: Win7 32 bit, Win7 64 Bit
iOS: 4.2.1 (iPod Touch)
Firefox 11, 13
Firefox Mobile: Android
Chrome 15, 17
Desktop testing was both localhost and remote. Mobiles obv. all remote.
You could try removing everything AB related from site-packages, and
do a clean easy_install from Pypi. This is what I did for 1 of the
remote machines to verify that nothing stale was left and a clean
install did happen.
So it works for me here,
Tobias
ok, we have the new Autobahn 0.5.1 in production use on autobahn.ws Web
site. You can "verify": it replies "Server: AutobahnPython/0.5.1" in
HTTP headers, and it speaks Hybi and Hixie.
You can checkout the live demos there using your browsers.
It is working for us from various different Hybi, Hixie, desktop and
mobile browsers - at least
http://autobahn.ws/demo/pubsub
works on all. The others have issues still on certain mobiles due to
the use of HTML5 audio and/or jQuery (non-mobile).
There was 1 glitch related to Hixie opening handshake, that only now
appeared when running on _standard_ ports 80 or 443:
https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/websocket.py#L2687
The fix commit is
https://github.com/tavendo/AutobahnPython/commit/049d3ea979c71714b1504924696586a1e467acee
The reason is that Safari/Opera are _very_ picky about the
Sec-WebSocket-Location header returned. When running WS on port 80 (as
we do for production), it wants to have _no_ port (no 80) in that header
at all. If a port is present, they close the WS immediately
without any notice. Awesome.
Hope that helps,
Tobias
I'm glad you resolved your issue. And also that Autobahn wasn't the
guilty one;)
WebSocket is new stuff, there will be issues. Point is: community
as a whole needs to learn, and it would probably be helpful for
others if you described your specific setup, the guilty software
and what you did to identify / resolve in some detail, i.e.
on this list where others are reporting too:
http://www.ietf.org/mail-archive/web/hybi/current/msg09490.html
Cheers,
Tobias
> <http://autobahn.ws> Web