solid / specification

Solid Technical Reports
https://solidproject.org/TR/
MIT License
494 stars 44 forks source link

Indicate Solid protocol to the WebSocket interface #163

Open csarven opened 4 years ago

csarven commented 4 years ago

If WebsSocket is supported ( #50 ), Solid-specific protocol (+version) should be agreed for the WebSocket connection.

There is an experimental PR in https://github.com/solid/solid-spec/pull/220 for the purpose of updating the early documentation on WebSocket communication in Solid. It is intended to temporarily remedy feature support. This issue should reuse or build on that.

acoburn commented 4 years ago

The former solid-spec repository describes using the following subprotocol when connecting to a WebSocket server: solid/0.1.0-alpha. For example:

const socket = new WebSocket('wss://example.org', ['solid/0.1.0-alpha']);

However, Chrome browsers do not accept subprotocols that contain slashes. And FireFox simply ignores subprotocols that contain slashes. When the Solid specification defines a (versioned) subprotocol for Solid, it would be best if that subprotocol does not contain slashes.

There are work-arounds for the solid/0.1.0-alpha subprotocol, but they all involve deviating from that recommendation (e.g. solid.0.1.0-alpha)

acoburn commented 4 years ago

My preference is to use two digits in the versioning scheme: solid.0.1-alpha. Three digits makes sense for software but protocols tend to use only one or two digits.

acoburn commented 4 years ago

Dropping alpha is fine with me

WhyINeedToFillUsername commented 3 years ago

The former solid-spec repository describes using the following subprotocol when connecting to a WebSocket server: solid/0.1.0-alpha. For example:

const socket = new WebSocket('wss://example.org', ['solid/0.1.0-alpha']);

However, Chrome browsers do not accept subprotocols that contain slashes. And FireFox simply ignores subprotocols that contain slashes. When the Solid specification defines a (versioned) subprotocol for Solid, it would be best if that subprotocol does not contain slashes.

There are work-arounds for the solid/0.1.0-alpha subprotocol, but they all involve deviating from that recommendation (e.g. solid.0.1.0-alpha)

Based on the https://bugs.chromium.org/p/chromium/issues/detail?id=398407, it looks like Chrome is correct in not supporting slashes in the sub-protocol name.