Подробное объяснение сообщения о дальнейшем анализе широковещательный канал.
Если программа Cometd-Spring начнет транслировать новое сообщение, а клиент javascript cometd подпишется позже, клиент не сможет получить новое широковещательное сообщение. Однако клиент начинает получать широковещательное сообщение после перезапуска сервера cometd.
Канал трансляции: /notification
Код клиента:
function _metaHandshake(handshake)
{
if (handshake.successful === true)
{
cometd.batch(function(){
cometd.subscribe('/notification', function(message){
console.log("Received Data ::"+JSON.stringify(message.data));
});
});
}
}
Код сервера:
@javax.inject.Named
@javax.inject.Singleton
@Service("notificationService")
public class NotificationService {
@Inject
private BayeuxServer bayeuxServer;
@Session
private LocalSession session;
@Configure("/notification")
public void configureServiceChannel(ConfigurableServerChannel channel)
{
channel.setPersistent(true);// channel persistent
channel.addAuthorizer(GrantAuthorizer.GRANT_ALL);
}
public void onExternalEvent( Map<String, Object> data)
{
this.bayeuxServer.getChannel("/notification").publish(this.session, data);
}
}