Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(18) |
Nov
(27) |
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(3) |
Feb
(34) |
Mar
(19) |
Apr
(14) |
May
(40) |
Jun
(18) |
Jul
(20) |
Aug
(9) |
Sep
(32) |
Oct
(11) |
Nov
(25) |
Dec
(36) |
2004 |
Jan
(12) |
Feb
(41) |
Mar
(67) |
Apr
(16) |
May
(36) |
Jun
(26) |
Jul
(19) |
Aug
(28) |
Sep
(5) |
Oct
(11) |
Nov
(9) |
Dec
(45) |
2005 |
Jan
(14) |
Feb
(12) |
Mar
(22) |
Apr
(58) |
May
(41) |
Jun
(19) |
Jul
(15) |
Aug
(9) |
Sep
(16) |
Oct
(6) |
Nov
(35) |
Dec
(33) |
2006 |
Jan
(6) |
Feb
(39) |
Mar
(17) |
Apr
(29) |
May
(12) |
Jun
(85) |
Jul
(43) |
Aug
(115) |
Sep
(103) |
Oct
(43) |
Nov
(100) |
Dec
(45) |
2007 |
Jan
(66) |
Feb
(85) |
Mar
(85) |
Apr
(72) |
May
(28) |
Jun
(12) |
Jul
(2) |
Aug
(4) |
Sep
(46) |
Oct
(38) |
Nov
(38) |
Dec
(50) |
2008 |
Jan
(27) |
Feb
(26) |
Mar
(24) |
Apr
(51) |
May
(42) |
Jun
(28) |
Jul
(20) |
Aug
(45) |
Sep
(28) |
Oct
(21) |
Nov
(50) |
Dec
(51) |
2009 |
Jan
(40) |
Feb
(66) |
Mar
(42) |
Apr
(33) |
May
(10) |
Jun
(41) |
Jul
(72) |
Aug
(52) |
Sep
(50) |
Oct
(32) |
Nov
(28) |
Dec
(74) |
2010 |
Jan
(30) |
Feb
(45) |
Mar
(40) |
Apr
(47) |
May
(54) |
Jun
(19) |
Jul
(48) |
Aug
(58) |
Sep
(50) |
Oct
(31) |
Nov
(7) |
Dec
(20) |
2011 |
Jan
(18) |
Feb
(20) |
Mar
(43) |
Apr
(52) |
May
(61) |
Jun
(55) |
Jul
(25) |
Aug
(5) |
Sep
(33) |
Oct
(32) |
Nov
(10) |
Dec
(16) |
2012 |
Jan
(25) |
Feb
(46) |
Mar
(29) |
Apr
(28) |
May
(13) |
Jun
(40) |
Jul
(13) |
Aug
(21) |
Sep
(3) |
Oct
(32) |
Nov
(25) |
Dec
(14) |
2013 |
Jan
(3) |
Feb
(5) |
Mar
(25) |
Apr
(14) |
May
(15) |
Jun
(18) |
Jul
(21) |
Aug
|
Sep
(17) |
Oct
(1) |
Nov
(15) |
Dec
(16) |
2014 |
Jan
(5) |
Feb
(6) |
Mar
(18) |
Apr
(25) |
May
(22) |
Jun
(17) |
Jul
(9) |
Aug
(6) |
Sep
(12) |
Oct
(5) |
Nov
(18) |
Dec
(4) |
2015 |
Jan
|
Feb
(20) |
Mar
(3) |
Apr
(21) |
May
(2) |
Jun
(6) |
Jul
(5) |
Aug
(10) |
Sep
(1) |
Oct
(9) |
Nov
(6) |
Dec
(5) |
2016 |
Jan
(4) |
Feb
(5) |
Mar
(26) |
Apr
(8) |
May
(16) |
Jun
(20) |
Jul
(1) |
Aug
(5) |
Sep
(8) |
Oct
(4) |
Nov
(2) |
Dec
(10) |
2017 |
Jan
(31) |
Feb
(11) |
Mar
(3) |
Apr
(10) |
May
(4) |
Jun
(6) |
Jul
(9) |
Aug
(8) |
Sep
|
Oct
(8) |
Nov
(10) |
Dec
(6) |
2018 |
Jan
(6) |
Feb
(5) |
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(1) |
2
|
3
|
4
|
5
|
6
|
7
(1) |
8
|
9
(3) |
10
|
11
|
12
(1) |
13
|
14
|
15
|
16
(1) |
17
(2) |
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
(1) |
27
|
28
|
29
|
30
|
|
|
|
From: Wes James <comptekki@gm...> - 2011-11-17 22:22:42
|
Jan, You may want to look at the cowboy or misultin implementation of websockets. I switched a small app I'm creating to misultin because websockets was not complete enough in yaws. I've had no trouble with misultin on chrome 15.x right now. Thanks for your updates! -wes On Thu, Nov 17, 2011 at 12:36 PM, Jan Bothma <jbothma@...> wrote: > Hi, > > I've gotten pretty far with adding websocket support to Yaws 1.91. > > I think it's time to hear how people would like to use it, and get > comment on my code. > > The old Websocket support was based on the hixie group's protocol. It > sounds like the hybi group's protocol is getting close to finalisation > and it's quite different from the old one. The old protocol support in > yaws included a .yaws file as the endpoint requested by the JavaScript > API, which calls a handshake function and then enters a server loop. > |
From: Jan Bothma <jbothma@gm...> - 2011-11-17 19:36:24
|
Hi, I've gotten pretty far with adding websocket support to Yaws 1.91. I think it's time to hear how people would like to use it, and get comment on my code. The old Websocket support was based on the hixie group's protocol. It sounds like the hybi group's protocol is getting close to finalisation and it's quite different from the old one. The old protocol support in yaws included a .yaws file as the endpoint requested by the JavaScript API, which calls a handshake function and then enters a server loop. I based my work on that, but changed things as necessary, and the result is more like a bunch of handler functions called by the server loop. At the Erlang User Conference I saw that the Cowboy server lets application developers register handler modules, whose handler functions get called very much like a gen_server callback module. I think it would be really nice to move the server loop into the yaws websocket libraries and let application developers simply define a callback module. A .yaws file at the endpoint could start the process like it does now, with configuration options like what Origin header should be enforced, if any, and name the callback module. Does this sound like a nice way to program websocket endpoints? Something I haven't added yet is configuration of the expected Origin URL. For browser clients, this should be enforced to avoid attacks. For non-browser clients where this is not relevant (currently for the Autobahn test suite), this should not be enforced at all. Any comment on that? Another config option is the maximum sized message expected. I think it can technically be something like 2GB, but I'm sure something will crash before that. I run out of swap space before that. I think I allow up to about 2GB and Autobahn tests up to about 16MB, but do people agree that this should be a config option for the application developer? What's a sane default, if any? The common use case for us is less than 1kb of JSON. I'd welcome comments on the code at https://github.com/jbothma/yaws/tree/websocket_hy10. Note the work is in the websocket_hy10 branch. Autobahn test results for a recent version at http://jbothma.co.uk/websocket/autobahn_yaws_b5d92/ The only up to date endpoint is the autobahn one. This means the test web page doesn't work right now. From the autobahn endpoint you should be able to create a working echo test web page if you wish. My implementation supports Chromium 14 but it should work with anything using Websocket 8. Since it doesn't know about Websocket 16 it will just die or break or something. I don't think there are significant changes needed to upgrade except adding negotiation. I haven't considered SSL connections at any stage but they should not be too difficult to add. BTW the complexity in the handlers and the yaws_websocket module is that WS messages can be fragmented over several frames, frames can be fragmented into packets depending on buffers along the TCP connection, and there's no guarantee that one packet contains only one frame. A packet might contain the end of one frame and the beginning of the next. I'm hoping refactoring can hide a lot of this from the user, but the user will still have to deal with fragmented messages to some extent. Messages may also be fragmented by intermediaries like proxies along the way if they're aware of WebSocket. Suggestions here would be VERY welcome :) Regards, JD |