Re: [Jmap] Fwd: New Version Notification for draft-murchison-jmap-websocket-00.txt

Tom Smith <tom.smith@staff.atmail.com> Tue, 12 June 2018 00:13 UTC

Return-Path: <tom.smith@staff.atmail.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E5F58127332 for <jmap@ietfa.amsl.com>; Mon, 11 Jun 2018 17:13:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=staff.atmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1W1zBVqTGxr8 for <jmap@ietfa.amsl.com>; Mon, 11 Jun 2018 17:13:51 -0700 (PDT)
Received: from staff72.atmail.com (staff72.atmail.com [204.145.97.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 60D59130E2B for <jmap@ietf.org>; Mon, 11 Jun 2018 17:13:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=staff.atmail.com; s=20160330; h=Content-Type:MIME-Version:Date:Message-ID: From:To:Subject; bh=WTxLkTH0fBDy6Kpr+6SdKrfzPdRmg7IuGPhW4dbuumY=; b=I/uCADwfi AUj0ap+kdOydRLMnt2jV5EYc1Fl9QOhWepYZqBJef/rnQhvWM5YXjiGz4Py8Hb/tVkcrYVwb5odmc MrC6yG5wAY9dbZ9nKKgQw02ATgntjkU1mOC5c5yvA5M8Nw7biT95oOflgDNuCrf6pNq3/EPtNFX+T 3QHeBXdc=;
Received: from 252-220-181-180.cpe.skymesh.net.au ([180.181.220.252] helo=localhost.localdomain) by hc0-dh-ro-aio-002.internal.atmailcloud.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.90_1) (envelope-from <tom.smith@staff.atmail.com>) id 1fSWw7-0003jc-06; Tue, 12 Jun 2018 10:13:23 +1000
To: Dave Richards <dave.richards@staff.atmail.com>, Neil Jenkins <neilj@fastmailteam.com>
Cc: IETF JMAP Mailing List <jmap@ietf.org>, brad@staff.atmail.com
References: <305ecac4-d5cb-2935-a1ef-e3dcc6823e0f@fastmail.com> <42d9cdbc-338b-125b-4164-76dda81c81fa@fastmailteam.com> <152762434119.30187.891281157139219165.idtracker@ietfa.amsl.com> <113acf52-6b03-4914-a0f2-7fdf08b1cf98@sloti22d1t06> <32a1f0a3-6fb3-4858-82f9-abc27d526f82@sloti35d1t03> <4F1C8A0C-C3BA-454B-A85D-3AB37DAC12BE@staff.atmail.com>
From: Tom Smith <tom.smith@staff.atmail.com>
Message-ID: <f6e3576a-b5af-885e-6393-f1d3c8fb4cc9@staff.atmail.com>
Date: Tue, 12 Jun 2018 10:13:42 +1000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
MIME-Version: 1.0
In-Reply-To: <4F1C8A0C-C3BA-454B-A85D-3AB37DAC12BE@staff.atmail.com>
Content-Type: multipart/alternative; boundary="------------35C036172BBC5BDE3B57632F"
Content-Language: en-US
X-Atmail-Id: tom.smith@staff.atmail.com
X-atmail-spam-CA-score: 0
X-atmail-spam-CA-bar: /
X-atmail-spam-CA-report: X-CTCH-Spam: Unknown X-CTCH-VOD: Unknown X-CTCH-Flags: 0 X-CTCH-RefID: str=0001.0A020210.5B1F103E.0004, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-atmail-spam-score: -189
X-atmail-spam-bar: -------------------
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/vh0ohXwuJsee9UZB_DmFFzwyHaY>
Subject: Re: [Jmap] Fwd: New Version Notification for draft-murchison-jmap-websocket-00.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jun 2018 00:13:54 -0000

No, we use Server Sent Events, as per the original spec.

https://www.w3schools.com/html/html5_serversentevents.asp


Cheers,

Tom.



On 09/06/18 18:36, Dave Richards wrote:
> Tom/Brad, do we do this, or are we pure WS?
>
> Dave
>
>
>
> On 9 Jun 2018, at 16:55, Neil Jenkins <neilj@fastmailteam.com 
> <mailto:neilj@fastmailteam.com>> wrote:
>
>> On Wed, 30 May 2018, at 11:31 PM, Ken Murchison wrote:
>>>> * Should the server be allowed to advertise a different URL
>>          for a websockets API connection as opposed to an HTTP one?
>>> Sure.  I'll add a 'wsUrl' String to the capabilities.
>>
>> My question was genuine, I don't know whether this should be separate 
>> or the same. Does anyone here have experience running an API that's 
>> available over either websockets or HTTP? If so, would you normally 
>> put the websockets upgrade on the same URL, or a different one? 
>> Making it separate certainly gives you more flexibility, so seems 
>> like the right option to me, but I'd be interested if anyone has 
>> real-world experience.
>>
>>>> * Are responses guaranteed to be in the same order as
>>          requests? (Probably not; if you want methods to execute
>>          sequentially you should bundle them in a single request
>>          object, but then how do you correlate the response objects to
>>          the request objects? Probably need to add an id property to
>>          the request/response object.)
>>>
>>> I had intended that they would be in the same order, but I suppose
>>    out of order could be allowed if deemed necessary.
>>
>> I think you definitely want this. This allows you to do concurrent 
>> requests with a single websocket, avoiding the overhead and 
>> complexity of creating multiple websocket connections to the server.
>>
>>>
>>>
>>>> * I think being able to receive push events over the single
>>          websocket connection makes sense, but that means you'd have to
>>          be able to distinguish the different message types you might
>>          receive (API response or push).
>>>
>>> Can't the client distinguish between a Response object and a
>>    StateChange object?  If we need a better way, do you have a
>>    recommendation?
>>
>> I would probably add an @type property to each top-level object 
>> (Response and StateChange) with the name of the type as the value.
>>
>>>> * What changes are required to rate limiting options for the
>>          server? These probably need to be advertised in the
>>          capabilities object for this extension.
>>> Are you thinking that we need separate maxSizeRequest,
>>    maxConcurrentRequests, maxCallsInRequest, maxObjectsInGet, and
>>    maxObjectsInSet for the WebSocket connection?
>>
>> No, these would still apply. It's more if you need extra ones: if you 
>> don't need to wait for a response to come back before issuing another 
>> request down the websocket, is this just counted as concurrent 
>> requests so subject to maxConcurrentRequests (I would say yes)? What 
>> about having multiple websocket connections at once? That probably 
>> needs a separate limit, because the request is no longer the same as 
>> the connection. Maybe maxConcurrentSockets or something.
>>
>> Neil.
>> _______________________________________________
>> Jmap mailing list
>> Jmap@ietf.org <mailto:Jmap@ietf.org>
>> https://www.ietf.org/mailman/listinfo/jmap