There have been once again some changes in the client APIs which will require changing your code.
Package names
Several packages have been renamed to a more consistent convention under the prefix ‘org.granite.client.javafx’. Usually a simple ‘Optimize imports’ or search/replace in your IDE should be enough to do the necessary changes.
ChannelFactory API
The ChannelFactory API has been slighly changed to allow different channel types:
ChannelFactory channelFactory = new JMFChannelFactory(); channelFactory.start(); MessagingChannel channel = channelFactory.newMessagingChannel(ChannelType.LONG_POLLING, "longPollingChannel", "http://localhost:8080/gravityamf/amf.txt") Consumer consumer = new Consumer(channel, "stocks", "europe");
For a websocket channel, you will also have to configure the transport:
ChannelFactory channelFactory = new JMFChannelFactory(); channelFactory.setMessagingTransport(ChannelType.WEBSOCKET, new JettyWebSocketTransport()); channelFactory.start(); MessagingChannel channel = channelFactory.newMessagingChannel(ChannelType.WEBSOCKET, "websocketChannel", "ws://localhost:8080/myapp/gravityamf/amf"); Consumer consumer = new Consumer(channel, "stocks", "europe");
For a UDP channel, assuming the granite-client-java-udp.jar library is present:
ChannelFactory channelFactory = new JMFChannelFactory(); channelFactory.start(); MessagingChannel channel = channelFactory.newMessagingChannel(ChannelType.UDP, "udpChannel", "http://localhost:8080/myapp/gravityamf/amf.txt") Consumer consumer = new Consumer(channel, "stocks", "europe");
Of course you can mix all these channels and get them from the same ChannelFactory.
Additionally you can use the ServerApp API if you don’t want to build the url yourself:
ServerApp serverApp = new ServerApp("/myapp", false, "localhost", 8080); ChannelFactory channelFactory = new JMFChannelFactory(); channelFactory.start(); MessagingChannel lpChannel = channelFactory.newMessagingChannel(ChannelType.LONG_POLLING, "longPollingChannel", serverApp); MessagingChannel wsChannel = channelFactory.newMessagingChannel(ChannelType.WEBSOCKET, "websocketChannel", serverApp); MessagingChannel udpChannel = channelFactory.newMessagingChannel(ChannelType.UDP, "udpChannel", serverApp);
ServerSession API
The ServerSession API has also been updated.
You can now use the ServerSession to build Consumer and Producer objects:
ServerSession serverSession = new ServerSession("/myapp", "localhost", 8080); serverSession.setMessagingTransport(ChannelType.WEBSOCKET, new JettyWebSocketTransport()); serverSession.start(); Consumer lpConsumer = serverSession.getConsumer(ChannelType.LONG_POLLING, "stocks", "europe"); Consumer wsConsumer = serverSession.getConsumer(ChannelType.WEBSOCKET, "stocks", "usa"); Consumer udpConsumer = serverSession.getConsumer(ChannelType.UDP, "stocks", "asia");
The GraniteDS Team.
Leave a Comment