blob: 5ada8548ee7e81b8ef40f2b28f909d19603c4a6f [file] [log] [blame]
nn_ws(7)
========
NAME
----
nn_ws - WebSocket transport mechanism
SYNOPSIS
--------
*#include <nanomsg/nn.h>*
*#include <nanomsg/ws.h>*
DESCRIPTION
-----------
THIS IS AN EXPERIMENTAL FEATURE. DO NOT USE.
THE FUNCTIONALITY IS SUBJECT TO CHANGE WITHOUT PRIOR NOTICE.
When calling either `nn_bind()` or `nn_connect()`, omitting the port defaults
to the RFC 6455 default port 80 for HTTP. Example:
ws://127.0.0.1 is equivalent to ws://127.0.0.1:80
Connecting to an Arbitrary WebSocket Service
--------------------------------------------
When calling `nn_connect()`, the URI may also optionally include the path to a
resource and/or query parameters.
_Example_
s1 = nn_socket (AF_SP, NN_PAIR);
nn_connect (s1, "ws://example.com/path?query=value");
This extended URI may help in situations with service protocol requirements, or
routing through existing HTTP infrastructure such as reverse proxies. The URI
is effectively only useful for routing and establishing the connection with
non-nanomsg services. Once established, this additional information is not
available via the nanomsg API.
The spirit of these extended URIs is to enable interoperability with existing
services and infrastructure, and not necessarily to give nanomsg connections a
new means of controlling the opening handshake.
A nanomsg socket accepting connections after calling `nn_bind()` does not use
this additional path or query parameters, except for incidentally satisfying any
intermediate HTTP infrastructure used to route the connection to the nanomsg
socket accepting connections.
Socket Options
~~~~~~~~~~~~~~
TODO: NN_TCP_NODELAY::
This option, when set to 1, disables Nagle's algorithm. It also disables
delaying of TCP acknowledgments. Using this option improves latency at
the expense of throughput. Type of this option is int. Default value is 0.
EXAMPLE
-------
----
nn_bind (s1, "ws://*:5555");
nn_connect (s2, "ws://myserver:5555");
----
SEE ALSO
--------
linknanomsg:nn_tcp[7]
linknanomsg:nn_inproc[7]
linknanomsg:nn_ipc[7]
linknanomsg:nn_bind[3]
linknanomsg:nn_connect[3]
linknanomsg:nanomsg[7]
AUTHORS
-------
Martin Sustrik <sustrik@250bpm.com>
Jack R. Dunaway <jack@wirebirdlabs.com>