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.
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 Thanks; looks like we need an urgent fix to the draft spec. I remember you had some preferences/suggestions on how to approach versioning; I suggest we would follow those (is that solid.0.1.0-alpha?).
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 I noted that @timbl wants to drop the alpha in https://github.com/solid/solid-spec/issues/221; fine with you?
Dropping alpha is fine with me
Most helpful comment
The former solid-spec repository describes using the following subprotocol when connecting to a WebSocket server:
solid/0.1.0-alpha. For example: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-alphasubprotocol, but they all involve deviating from that recommendation (e.g.solid.0.1.0-alpha)