Package com.eclipsesource.jaxrs.sse.example

Source Code of com.eclipsesource.jaxrs.sse.example.ExampleService

/*******************************************************************************
* Copyright (c) 2012 EclipseSource and others. All rights reserved. This program and the
* accompanying materials are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html Contributors: Holger Staudacher - initial API and
* implementation
******************************************************************************/
package com.eclipsesource.jaxrs.sse.example;

import java.io.IOException;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import org.glassfish.jersey.media.sse.EventOutput;
import org.glassfish.jersey.media.sse.OutboundEvent;
import org.glassfish.jersey.media.sse.SseFeature;

@Path( "events" )
public class ExampleService {

  @GET
  @Produces( SseFeature.SERVER_SENT_EVENTS )
  public EventOutput getServerSentEvents() {
    final EventOutput eventOutput = new EventOutput();
    new Thread( new Runnable() {

      @Override
      public void run() {
        try {
          for( int i = 0; i < 10; i++ ) {
            Thread.sleep( 1000 );
            final OutboundEvent.Builder eventBuilder = new OutboundEvent.Builder();
            eventBuilder.name( "message-to-client" );
            eventBuilder.data( String.class, "Hello world " + i + "!" );
            final OutboundEvent event = eventBuilder.build();
            eventOutput.write( event );
          }
        } catch( IOException e ) {
          throw new RuntimeException( "Error when writing the event.", e );
        } catch( InterruptedException e ) {
          e.printStackTrace();
        } finally {
          try {
            eventOutput.close();
          } catch( IOException ioClose ) {
            throw new RuntimeException( "Error when closing the event output.", ioClose );
          }
        }
      }
    } ).start();
    return eventOutput;
  }
}
TOP

Related Classes of com.eclipsesource.jaxrs.sse.example.ExampleService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.