Hi all, Since nobody called for changes in the API, it was merged in GIT after extensive testing using the awesome http://autobahn.ws/testsuite pointed by Raoul.
Note that to test you need CURL from GIT (7.50.2-DEV) as they committed a fix to their handling of unknown 101 (Switch Protocols). While in real-life this is hardly hitting the user, during autobahn test many cases start with a very small frame (2-4 bytes) and CURL wouldn't process then unless they were 5 bytes long. After the first frame is longer than 5 bytes everything works with the old CURL (ie: you can talk to ws://echo.websocket.org) It was also very nice way to test the Efl_Net_Dialer_Http with more data patterns, some fixes got in. On Tue, Aug 30, 2016 at 1:04 AM, Gustavo Sverzut Barbieri <barbi...@gmail.com> wrote: > Hi all, > > I'm taking over the work started at > https://phab.enlightenment.org/D2985, please take a look at my last > comment https://phab.enlightenment.org/D2985#71145 for more details. > > The branch is > https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/websocket > there you can see two examples of the API usage. > > If you're not familiar with WebSocket, it's a bi-directional > message-based (NOT streaming!) protocol on top of HTTP, starts with a > GET request and requests a connection upgrade, then can use proxies, > TLS/SSL and authentication. It's used to avoid polling web-servers > with new HTTP requests for data, such as Stock Tickers, WebEditors and > so on. Compared to an older solution SSE (Server-Side Events), it > offers more efficient message framing and bi-directional > communication. > > My branch builds on top of Efl.Net.Dialer.Http (our new HTTP client > based on CURL) and exposes a new API for the message-based primitives > of WebSockets. However, to play nice with other Efl.Io.Reader and > Efl.Io.Writer users, such as Efl.Io.Copier, you can ask > Efl.Net.Dialer.Websocket to operate in streaming mode, picking one of > Text or Binary messages as your channel. Then the traditional > "can_read"/"read()", "can_write"/"write()" will work. > > Play with them and let me know what you think. In the phab comment you > can see how to create a nodejs websocket server to make your testing > simpler. > > What do you think about this API? > > -- > Gustavo Sverzut Barbieri > -------------------------------------- > Mobile: +55 (16) 99354-9890 -- Gustavo Sverzut Barbieri -------------------------------------- Mobile: +55 (16) 99354-9890 ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel