Very simple WAMP v1 implementation
$ npm install wamp1 $ component install Swatinem/wamp1
So far there is basically one WAMP implementation for the client side, AutobahnJS. It claims to be tiny without dependencies. It is actually >100K with a lot of dependencies embedded. Plus it has a very ugly promises-based API.
I think I can do better :-)
note: This only implements WAMP1, which is fundamentally different from the still working draft WAMP2, which is a lot more complex.
note: This does not include WAMP-CRA, that should be a separate library on top of this one.
new Wamp(url, [options], [callback])
Creates a websocket connection to
url and optionally calls
callback with the
resulting welcome message.
options.omitSubscribe is set to
true, subscribe and unsubscribe calls
will not be sent to the server. The events however are routed to the
This is useful in case the server will send out events regardless of whether
the client subscribed or not. It will simply reduce network chatter.
Wamp will forward any event that was subcribed to to a generic
It will emit a
error event in case the protocol version is not supported or
in case the server sends callresults that were not requested.
This property reflects the session id that the server generates and sends via the handshake.
event on the server. The
callback is called when the server
sends that event.
event on the server. This takes care of multiple listeners
wamp.publish(event, data, [excludeMe] | [exclude] , [eligible])
data to the server.
See the spec for the optional arguments
that control the users getting this event.
This registers the
uri on the server.
Really, using complete URIs as event identifiers is just overkill, better to use
simple names to begin with.
wamp.call(method, [args…], callback(error, result))
method remotely on the server, passing in
callback is called either with an
error or with the
result from the