Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ralscha/wamp2spring
WAMP 2 implementation for Spring 5
https://github.com/ralscha/wamp2spring
java spring subprotocol wamp wamp-protocol wamp-router wamp-specification websocket websockets
Last synced: 5 days ago
JSON representation
WAMP 2 implementation for Spring 5
- Host: GitHub
- URL: https://github.com/ralscha/wamp2spring
- Owner: ralscha
- License: apache-2.0
- Created: 2017-08-14T18:04:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-27T17:01:16.000Z (19 days ago)
- Last Synced: 2024-10-27T20:06:49.729Z (19 days ago)
- Topics: java, spring, subprotocol, wamp, wamp-protocol, wamp-router, wamp-specification, websocket, websockets
- Language: Java
- Size: 1.44 MB
- Stars: 30
- Watchers: 9
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Build Status](https://github.com/ralscha/wamp2spring/workflows/test/badge.svg)
*wamp2spring* is a Java implementation of the [WAMP specification](http://wamp-proto.org/spec/) built on top of the WebSocket support of Spring 5.
WAMP is a WebSocket subprotocol that provides two application messaging patterns: Remote Procedure Calls and Publish / Subscribe.## Implementation
*wamp2spring* implements the Basic Profile, but it does not support multiple realms in one application.
Every connection, registration and subscription exists in the same realm and *wamp2spring* ignores the realm
parameter of the HELLO message.Additionally *wamp2spring* implements a few features from the Advanced Profile:
|Feature |Remark |
|:----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------|
|caller_identification |disclose_me option in the CALL message. [Specification](http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.3.5) |
|subscriber_blackwhite_listing|Exclude and include receivers with their WAMP session id. *Only eligible and exclude options are implemented.* [Specification](http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.4.1).|
|publisher_exclusion |exclude_me option in the PUBLISH message. By default the publisher is excluded from receiving the EVENT message. [Specification](http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.4.2) |
|publisher_identification |disclose_me option in the PUBLISH message. [Specification](http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.4.3)|
|pattern_based_subscription |Prefix- and wildcard matching policies for subscriptions. [Specification](http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.4.6) |
|event_retention |[Specification](https://github.com/wamp-proto/wamp-proto/blob/da34d9bd833beeb6f9cc8bc89faf8138d710aa78/rfc/text/advanced/ap_pubsub_event_retention.md)|**Dataformats**
*wamp2spring* supports JSON (wamp.2.json) and MessagePack (wamp.2.msgpack) required by the Basic Profile. In addition it
supports [CBOR](http://cbor.io/) (wamp.2.cbor) and [SMILE](https://en.wikipedia.org/wiki/Smile_(data_interchange_format)) (wamp.2.smile).**Fallback**
Currently *wamp2spring* does not support a fallback solution when peers cannot establish
WebSocket connections. [autobahn-js](https://github.com/crossbario/autobahn-js) implements a fallback with long polling.
You find the description about the protocol in the specification ([Section 14.5.3.3](http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#rfc.section.14.5.3.3)).
So far I don't have a need for a fallback solution because WebSocket works fine especially when it's sent over TLS connections.
But when there is a need I will try to add this fallback solution. Pull requests are always welcome.## Quickstart
See [Wiki](https://github.com/ralscha/wamp2spring/wiki/Quickstart)## Maven
See [Wiki](https://github.com/ralscha/wamp2spring/wiki/Maven)## Example applications
You find a collection of example applications in the [wamp2spring-demo](https://github.com/ralscha/wamp2spring-demo) GitHub repository.## Changelog
See [Wiki](https://github.com/ralscha/wamp2spring/wiki/Changelog)
## More information
See [Wiki](https://github.com/ralscha/wamp2spring/wiki/Links)
## License
Code released under [the Apache license](http://www.apache.org/licenses/).