#Ripple
Lightweight Dart messaging server; supporting STOMP messaging protocol.
See also Stomp Dart Client.
##Installation
Add this to your pubspec.yaml
(or create it):
dependencies:
ripple:
Then run the Pub Package Manager (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.
###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.