Return-Path: X-Original-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Delivered-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 786CE17AB9 for ; Fri, 11 Sep 2015 22:38:14 +0000 (UTC) Received: (qmail 66810 invoked by uid 500); 11 Sep 2015 22:38:14 -0000 Delivered-To: apmail-httpd-modules-dev-archive@httpd.apache.org Received: (qmail 66768 invoked by uid 500); 11 Sep 2015 22:38:14 -0000 Mailing-List: contact modules-dev-help@httpd.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: modules-dev@httpd.apache.org Delivered-To: mailing list modules-dev@httpd.apache.org Received: (qmail 66756 invoked by uid 99); 11 Sep 2015 22:38:13 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Sep 2015 22:38:13 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 71F111A179A for ; Fri, 11 Sep 2015 22:38:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.121 X-Spam-Level: X-Spam-Status: No, score=-0.121 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id tUGAbG55yZwd for ; Fri, 11 Sep 2015 22:38:12 +0000 (UTC) Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com [209.85.220.46]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTPS id 63DEB4415B for ; Fri, 11 Sep 2015 22:38:12 +0000 (UTC) Received: by padhy16 with SMTP id hy16so86276267pad.1 for ; Fri, 11 Sep 2015 15:38:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=eBHkuEKy32FpNhl2LbsQHU1W3eFW/dGru+kspWsC/X0=; b=uv3zlx5mtNKjoAIFvP1p+Fj81Sj7H3wKbTj+82/pKB36Z9W0qy09T2JwIpCNrajnwl MEh/oLBWt7wLdIUTsTPtM6364xSrevEPa14NywAMQnDv/mKbIYegZaGBPO2Q3/83NMH4 rQ7cC6aVGUUvzg8KhB83KddWN2eaW/rihSjOYsEdEKaRQToMl26w3D9kFjE8tZtwdrMJ Vz7xG+5wHKROIULP68Jod2eMd6xk+1gm03/VvBeTT5gQPm5IQbzGs0SThXmNIw91k4TE d+supKw4QMURLCpNhi8fguBxbEhQ0523WlarlFhqjQzvNcBW2BKDQYnKD1xV+XobkWzl ICWQ== X-Received: by 10.66.254.65 with SMTP id ag1mr2485020pad.134.1442011084803; Fri, 11 Sep 2015 15:38:04 -0700 (PDT) Received: from [172.31.99.141] ([107.85.105.56]) by smtp.gmail.com with ESMTPSA id fx4sm2233898pbb.92.2015.09.11.15.38.03 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Sep 2015 15:38:04 -0700 (PDT) Message-ID: <55F357CB.5080802@gmail.com> Date: Fri, 11 Sep 2015 15:38:03 -0700 From: Jacob Champion User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: modules-dev@httpd.apache.org Subject: Re: mod_websocket ownership (and fixes) References: <54FDF1F1.9060801@ni.com> <55F1F089.4020101@gmail.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 09/11/2015 02:52 AM, Stefan Eissing wrote: > Hi Jacob, > > good to see that someone adopts this! As to advise... > > While I am no expert on WebSockets and its different flavors, I know > that mod_websocket and my cuddly mod_h2 have several things in > common. For example they both have to manage the "Upgrade:" dance. > And WebSocket might want to participate in the TLS+ALPN protocol > handling also. Hello Stefan! I saw the Upgrade/ALPN discussion a little while ago on the dev list and thought of this as well. > For these things, there are some new features in trunk and hopefully > in the next 2.4.x release. In case you're interested, we can chat > about this a bit. I am absolutely interested. I'm not quite sure where to begin though... perhaps migrating the module to use an "official" Upgrade implementation? Did you have some entry points or pieces of code in mod_h2 or trunk that you'd like me to take a look at? > As to other topics, such as moving buckets across threads or > not-busy-waiting: these areas mod_websocket and mod_h2 have in common > to find a good solution for. Might also be worth an exchange. If you haven't already, take a look at the initial discussion on modules-dev that prompted my patchset -- in particular, the problem of how to implement bidirectional asynchronous communication using only one thread. The current solution seems to work, but it's less than ideal... personally, I'd like it very much if an idle WebSocket connection didn't monopolize one of Apache's precious threads. Perhaps mod_h2 has similar problems? I will start taking a look at mod_h2 and familiarizing myself with it; I've been meaning to do that for a while now anyway. If you had any immediate discussion topics, please by all means bring them up. :) In the meantime, my initial focus for this module (besides getting up to speed on the codebase itself) will be on RFC compliance... Thanks! --Jacob