CometD Java Client Publish
Submitted by sbordet on Tue, 11/24/2009 - 09:03.
Java CometD Client API: Publishing
Publishing a message on a channel is achieved using the method:
BayeuxClient.publish(String channel, Object data, String messageId)
A typical example is:
HttpClient httpClient = ... BayeuxClient client = new BayeuxClient(httpClient, "http://localhost:8080/cometd"); client.start(); Map<String, Object> data = new HashMap<String, Object>(); // Fill in the data client.publish("/game/table/1", data, null);
Like its JavaScript counterpart, publishing data on a channel is an asynchronous operation.
Note
Calling publish() does not mean that you have published the message when publish() returns.
Message batching works in a way similar to the JavaScript message batching:
HttpClient httpClient = ... BayeuxClient client = new BayeuxClient(httpClient, "http://localhost:8080/cometd"); client.start(); client.startBatch(); try { Map<String, Object> data = new HashMap<String, Object>(); // Fill in the data map object client.publish("/game/table/1", data, null); Map<String, Object> extra = new HashMap<String, Object>(); // Fill in the extra map object client.publish("/extra/1", data, null); } finally { client.endBatch(); }
Warning
Remember to call endBatch() after having called startBatch(), for example in a finally block.
If you don't, your messages will continue to queue up, and your application will not work as expected.
»
- Printer-friendly version
- Login to post comments