[nanomsg] WebSocket transport

  • From: Martin Sustrik <sustrik@xxxxxxxxxx>
  • To: nanomsg <nanomsg@xxxxxxxxxxxxx>
  • Date: Sat, 15 Nov 2014 13:08:48 +0100

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

Great news!

Jack Dunaway have implemented new transport in nanomsg, one layered on
top of WebSockets.

It works pretty much the same as all the other transports:

    nn_bind (s, "ws://127.0.0.1:80");
    nn_connect (s, "ws://127.0.0.1:80");

Big kudos to Jack, given the complexity of the task!

However, note that transport is currently marked as "THIS IS AN
EXPERIMENTAL FEATURE. DO NOT USE. THE FUNCTIONALITY IS SUBJECT TO
CHANGE WITHOUT NOTICE."

For those interested in the topic, we should now decide on the details
of the transport.

My suggestion is to discuss the protocol first and move to API and
implementation issues afterwards.

The currently used protocol mapping is briefly described here:

https://raw.githubusercontent.com/nanomsg/nanomsg/master/rfc/sp-websocket-mapping-01.txt

Some points to discuss:

1) Should WebSocket transport allow to use different opcodes (i.e.
binary vs. UTF messages)? If so, should it be done on per-connection
or per-message level? Also, if we allow for UTF-8 messages, how would
we encode SP headers?

2) Should SP type IDs be in text format (as is the case now) or should
they just be numbers (as in all other transports)?

3. Is there a need for some kind of special termination handshake?

Thoughts? Insights?
Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJUZ0JPAAoJENTpVjxCNN9YCIsH/jFm5EgB2DP/zL0tho0vIUFH
QolWpcN6npGgdio2xwoUCs46mn6tYxZ3eexC8lIyPRBuobZwf0TH/3fHI1yAappM
c/TYneGs9U7ve7eYnPU+LY/MX//3eUEql3Cm9e5ObaSpx0Vka21Cyb1c3cMz1EwM
Sx/16/Ib+MQLiUIkEWrnwbMA1bIBtp/ljECz69Gsksapk3h/5vgZUBvCHC/+i9Et
rhCM96ZYIhqUYcY1WDWGhh7NKjtluhSCsDK0Y0YaGJRfSF/ROYODGo3Qj+sSQWcM
yjc53BWH02h4H/nqc/8OGfX2S4iu99DaQH/lgAJKz6rzDXOKUjpcMQQW3s7KhsA=
=FZOj
-----END PGP SIGNATURE-----

Other related posts: