[Development] [Feature Request] Websockets

Shane Kearns shane.kearns.qt at gmail.com
Sat Aug 24 16:13:24 CEST 2013


I'd keep it independent - people may want websockets without JSON RPC, or
JSON RPC without websockets.

If you read this page:
http://qt-project.org/wiki/Creating-a-new-module-or-tool-for-Qt
It gives the expected structure and the metadata (sync.profile etc) which
are required to integrate nicely with a Qt installation.

If you want to move your project to the playground area as described in
that document, you can link to this mail in the list archive as my approval
to do so.

When you are happy with your public header files, can you post to this list
to request an API review.


On 21 August 2013 11:53, Kurt Pattyn <pattyn.kurt at gmail.com> wrote:

> Hi,
>
> OK, an add-on it will be.
>
> What should we name the add-on: QProtocols as someone suggested, or just
> QWebSockets?
> QProtocols could then contain, besides QWebSockets, also QJsonRpc.
>
> So this is what I will do:
> 1. refactor the code as you suggested (public API/private implementation)
> 2. tackle the minor adaptations you suggested (QRegExp ->
> QRegularExpression, http version header, … see issue list on GitHub).
> 3. refactor the getXXX methods to follow the Qt conventions (leaving out
> 'get')
> 4. make it into a static library iso a project include (.pri)
> 5. find out what meta data to provide, and implement it
> 6. migrate the documentation for doxygen style to qdoc style (and Qt style
> in general)
> 7. setup Qt build environment
> 8. add a request to Jira to create a repository (once we agree on the name
> of course)
> 9. migrate the code to gitorious
>
> For steps 3 and 4, I can have a look at the Qt serial port add-on, as you
> suggested.
>
> As this is my first contribution to Qt, all help regarding the build
> infrastructure is more than welcome!
>
> On 21 Aug 2013, at 04:11, development-request at qt-project.org wrote:
>
> *From: *Shane Kearns <shane.kearns.qt at gmail.com>
> *Subject: **Re: [Development] [Feature Request] Websockets*
> *Date: *21 Aug 2013 00:09:52 GMT+02:00
> *To: *Kurt Pattyn <pattyn.kurt at gmail.com>
> *Cc: *"development at qt-project.org" <development at qt-project.org>
>
>
> Hi,
>
> I would also make it an addon for now.
> There is one reason why it would need to go in QtNetwork, and that is to
> allow upgrading a QNetworkRequest/QNetworkReply into a QWebSocket.
> That would be a complex feature to implement, and isn't required to use
> websockets.
>
> I believe that a QML/javascript binding to your websocket implementation
> would be possible without needing to put the code into QtNetwork. For
> example, the webkit binding for QML works in this way so that QtDeclarative
> doesn't have a dependency on QtWebkit.
>
> When the implementation is mature, and websocket becomes important enough
> to consider it as core functionality required to implement a networked
> application, then we should move it into QtNetwork.
>
> Currently your implementation passes some conformance tests, and is proven
> in one application. These are both good milestones.
> I'd support you using Qt project infrastructure (e.g. JIRA and codereview)
> for your addon, if this is something you want. The Qt serial port addon is
> an example of an addon that does this already.
>
> From my initial code review, the main tasks to do are:
> 1. refactor into public header files (the API), and private header files
> (implementation classes)
> 2. build as a library, rather than a .pri file to include for static
> linkage with the application.
> 3. addon metadata files
>
> Step 1 gives us a well defined API, which we can review for completeness
> and cleanness.
> It also makes binary compatible updates possible.
> Steps 2 and 3 will make it easier for users of the addon to use it from
> their projects like any other Qt library.
>
> Some of the questions I'd be asking myself in the API review are:
> Could I implement the javascript websocket API on top of this?
> Is the API intuitive for somebody who knows the js API, and Qt C++?
> Is the API easy to use for the common cases?
> Does the API expose enough to make the complex cases possible?
> How consistent is the API with similar APIs in Qt?
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130824/e36ab23a/attachment.html>


More information about the Development mailing list