STOMP implementation for the Atmosphere Framework
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-stomp</artifactId>
<version>0.3</version>
</dependency>
The protocol support is currently not complete and will be progressively fixed in future releases. To do this, the project will lead new CPR and Javascript enhancements to then take advantage from them.
Consequently, alpha/RC of both projects will be provided when necessary the day we need to release a new version of STOMP support. The following table shows the associated versions:
atmosphere-stomp | atmosphere-runtime | atmosphere-javascript |
0.1 | 2.2.0-RC1 | 2.2.0 |
0.2 | 2.2.0-RC3 | 2.2.2 |
0.3 | 2.3.0-RC6 | 2.2.9 |
Check out our super simple demo to get started. File issues, do pull requests to help this community. Have questions? Post them here
Using STOMP protocol over Atmosphere is very easy.
@StompEndpoint
public class StompBusinessService {
// Invoked when someone push a 'SEND' frame to the '/stomp-destination' destination
@StompService(destination = "/stomp-destination")
@Message(encoders = { MyEncoder.class }, decoders = {MyDecoder.class })
public MyDto doStuff(final MyDto dto) {
MyDto retval = ...
// Broadcast the result to all '/stomp-destination' subscribers
return retval;
}
}
// Build atmosphere request object as usual
var request = { {
url: document.location.protocol + "//" + document.location.host + '/stomp',
...
};
// We use Stomp.js here
var client = Stomp.over(new $.atmosphere.WebsocketApiAdapter(request));
// Bind a callback to a subscription
client.subscribe("/stomp-destination", function(e) {
...
});
// Send data to the destination
var myDto = { ... };
client.send("/stomp-destination", {}, myDto);