https://github.com/rikulo/ripple
Lightweight Dart messaging server; supporting STOMP messaging protocol.
https://github.com/rikulo/ripple
Last synced: about 1 year ago
JSON representation
Lightweight Dart messaging server; supporting STOMP messaging protocol.
- Host: GitHub
- URL: https://github.com/rikulo/ripple
- Owner: rikulo
- License: other
- Created: 2013-08-07T09:19:19.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2013-11-05T07:19:03.000Z (over 12 years ago)
- Last Synced: 2025-05-09T00:44:34.665Z (about 1 year ago)
- Language: Shell
- Homepage: http://rikulo.org
- Size: 191 KB
- Stars: 11
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#Ripple
Lightweight Dart messaging server; supporting [STOMP](http://stomp.github.io/) messaging protocol.
* [Home](http://rikulo.org)
* [API Reference](http://api.rikulo.org/ripple/latest)
* [Discussion](http://stackoverflow.com/questions/tagged/rikulo)
* [Git Repository](https://github.com/rikulo/ripple)
* [Issues](https://github.com/rikulo/ripple/issues)
> See also [Stomp Dart Client](https://github.com/rikulo/stomp).
[](https://drone.io/github.com/rikulo/ripple/latest)
##Installation
Add this to your `pubspec.yaml` (or create it):
dependencies:
ripple:
Then run the [Pub Package Manager](http://pub.dartlang.org/doc) (comes with the Dart SDK):
pub install
##Usage
First, you have to import:
import "package:ripple/ripple.dart";
Then, you can start Ripple server by binding it to any number of Internet addresses and ports.
new RippleServer()
..start() //bind to port 61626
..startSecure(); //bind to port 61627 and using SSL
> For how to use a STOMP client to access Ripple server, please refer to [STOMP Dart Client](https://github.com/rikulo/stomp).
###WebSocket
You can have Ripple server to serve a WebSocket connection. For example,
HttpServer httpServer;
RippleServer rippleServer;
...
httpServer.listen((request) {
if (...) { //usually test request.uri to see if it is mapped to WebSocket
WebSocketTransformer.upgrade(request).then((WebSocket webSocket) {
rippleServer.serveWebSocket(webSocket);
}).catchError((ex) {
// Handle error
});
} else {
// Do normal HTTP request processing.
}
});
##Limitations
* Support STOMP 1.2 or above
* Support UTF-8 encoding
##Incompleteness
* Transaction not supported.
* Heart beat not supported.
* ACK and NACK not supported.
##Potential Enhancement
* Support subscribeBlob() better. Currently, messages will be held in the memory before sending to subscribers. It could be an issue if the message is huge.